[Libreoffice-commits] core.git: Branch 'feature/gsoc17-revamp-customize-dialog' - cui/Library_cui.mk cui/source
Muhammet Kara
muhammet.kara at pardus.org.tr
Mon Jul 10 08:42:06 UTC 2017
cui/Library_cui.mk | 1
cui/source/customize/SvxConfigPageHelper.cxx | 476 ++++++++++++++++++++++++
cui/source/customize/SvxMenuConfigPage.cxx | 11
cui/source/customize/SvxToolbarConfigPage.cxx | 23 -
cui/source/customize/cfg.cxx | 92 ++--
cui/source/inc/SvxConfigPageHelper.hxx | 89 ++++
cui/source/inc/cfg.hxx | 502 --------------------------
7 files changed, 627 insertions(+), 567 deletions(-)
New commits:
commit 1e73349503ac39439749e5d116f69a9dff6a2ce4
Author: Muhammet Kara <muhammet.kara at pardus.org.tr>
Date: Wed Jul 5 10:36:06 2017 +0300
Add new helper class to cui for SvxConfigPage
And kill the temporary namespace killmelater.
This class will contain helper functions/methods
for use of the tab pages of the Customize Dialog.
Change-Id: I63a05c9495a79009ed5b47f7790a46cff9f58c6a
Reviewed-on: https://gerrit.libreoffice.org/39617
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Muhammet Kara <muhammet.kara at pardus.org.tr>
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index 3bf088fa7737..4ddb959cbdf1 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -88,6 +88,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/customize/cfgutil \
cui/source/customize/eventdlg \
cui/source/customize/macropg \
+ cui/source/customize/SvxConfigPageHelper \
cui/source/customize/SvxMenuConfigPage \
cui/source/customize/SvxToolbarConfigPage \
cui/source/dialogs/about \
diff --git a/cui/source/customize/SvxConfigPageHelper.cxx b/cui/source/customize/SvxConfigPageHelper.cxx
new file mode 100644
index 000000000000..9442fe533e0d
--- /dev/null
+++ b/cui/source/customize/SvxConfigPageHelper.cxx
@@ -0,0 +1,476 @@
+/* -*- 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 "SvxConfigPageHelper.hxx"
+
+static sal_Int16 theImageType =
+ css::ui::ImageType::COLOR_NORMAL |
+ css::ui::ImageType::SIZE_DEFAULT;
+
+void SvxConfigPageHelper::RemoveEntry( SvxEntries* pEntries, SvxConfigEntry* pChildEntry )
+{
+ SvxEntries::iterator iter = pEntries->begin();
+
+ while ( iter != pEntries->end() )
+ {
+ if ( pChildEntry == *iter )
+ {
+ pEntries->erase( iter );
+ break;
+ }
+ ++iter;
+ }
+}
+
+OUString SvxConfigPageHelper::replaceSaveInName( const OUString& rMessage, const OUString& rSaveInName )
+{
+ OUString placeholder("%SAVE IN SELECTION%" );
+
+ OUString name = rMessage.replaceFirst(placeholder, rSaveInName);
+
+ return name;
+}
+
+OUString SvxConfigPageHelper::stripHotKey( const OUString& str )
+{
+ return str.replaceFirst("~", "");
+}
+
+OUString SvxConfigPageHelper::replaceSixteen( const OUString& str, sal_Int32 nReplacement )
+{
+ return str.replaceAll( OUString::number( 16 ), OUString::number( nReplacement ));
+}
+
+sal_Int16 SvxConfigPageHelper::GetImageType()
+{
+ return theImageType;
+}
+
+void SvxConfigPageHelper::InitImageType()
+{
+ theImageType =
+ css::ui::ImageType::COLOR_NORMAL |
+ css::ui::ImageType::SIZE_DEFAULT;
+
+ if (SvtMiscOptions().GetSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE)
+ {
+ theImageType |= css::ui::ImageType::SIZE_LARGE;
+ }
+ else if (SvtMiscOptions().GetSymbolsSize() == SFX_SYMBOLS_SIZE_32)
+ {
+ theImageType |= css::ui::ImageType::SIZE_32;
+ }
+}
+
+css::uno::Reference< css::graphic::XGraphic > SvxConfigPageHelper::GetGraphic(
+ const css::uno::Reference< css::ui::XImageManager >& xImageManager,
+ const OUString& rCommandURL )
+{
+ css::uno::Reference< css::graphic::XGraphic > result;
+
+ if ( xImageManager.is() )
+ {
+ // TODO handle large graphics
+ css::uno::Sequence< css::uno::Reference< css::graphic::XGraphic > > aGraphicSeq;
+
+ css::uno::Sequence<OUString> aImageCmdSeq { rCommandURL };
+
+ try
+ {
+ aGraphicSeq =
+ xImageManager->getImages( GetImageType(), aImageCmdSeq );
+
+ if ( aGraphicSeq.getLength() > 0 )
+ {
+ result = aGraphicSeq[0];
+ }
+ }
+ catch ( css::uno::Exception& )
+ {
+ // will return empty XGraphic
+ }
+ }
+
+ return result;
+}
+
+OUString
+SvxConfigPageHelper::generateCustomName(
+ const OUString& prefix,
+ SvxEntries* entries,
+ sal_Int32 suffix /*= 1*/ )
+{
+ OUString name;
+ sal_Int32 pos = 0;
+
+ // find and replace the %n placeholder in the prefix string
+ name = prefix.replaceFirst( "%n", OUString::number( suffix ), &pos );
+
+ if ( pos == -1 )
+ {
+ // no placeholder found so just append the suffix
+ name += OUString::number( suffix );
+ }
+
+ if (!entries)
+ return name;
+
+ // now check if there is an already existing entry with this name
+ SvxEntries::const_iterator iter = entries->begin();
+
+ while ( iter != entries->end() )
+ {
+ SvxConfigEntry* pEntry = *iter;
+
+ if ( name.equals( pEntry->GetName() ) )
+ {
+ break;
+ }
+ ++iter;
+ }
+
+ if ( iter != entries->end() )
+ {
+ // name already exists so try the next number up
+ return generateCustomName( prefix, entries, ++suffix );
+ }
+
+ return name;
+}
+
+OUString SvxConfigPageHelper::generateCustomMenuURL(
+ SvxEntries* entries,
+ sal_Int32 suffix /*= 1*/ )
+{
+ OUString url = "vnd.openoffice.org:CustomMenu" + OUString::number( suffix );
+ if (!entries)
+ return url;
+
+ // now check is there is an already existing entry with this url
+ SvxEntries::const_iterator iter = entries->begin();
+
+ while ( iter != entries->end() )
+ {
+ SvxConfigEntry* pEntry = *iter;
+
+ if ( url.equals( pEntry->GetCommand() ) )
+ {
+ break;
+ }
+ ++iter;
+ }
+
+ if ( iter != entries->end() )
+ {
+ // url already exists so try the next number up
+ return generateCustomMenuURL( entries, ++suffix );
+ }
+
+ return url;
+}
+
+sal_uInt32 SvxConfigPageHelper::generateRandomValue()
+{
+ return comphelper::rng::uniform_uint_distribution(0, std::numeric_limits<unsigned int>::max());
+}
+
+OUString SvxConfigPageHelper::generateCustomURL( SvxEntries* entries )
+{
+ OUString url = ITEM_TOOLBAR_URL;
+ url += CUSTOM_TOOLBAR_STR;
+
+ // use a random number to minimize possible clash with existing custom toolbars
+ url += OUString::number( generateRandomValue(), 16 );
+
+ // now check is there is an already existing entry with this url
+ SvxEntries::const_iterator iter = entries->begin();
+
+ while ( iter != entries->end() )
+ {
+ SvxConfigEntry* pEntry = *iter;
+
+ if ( url.equals( pEntry->GetCommand() ) )
+ {
+ break;
+ }
+ ++iter;
+ }
+
+ if ( iter != entries->end() )
+ {
+ // url already exists so try the next number up
+ return generateCustomURL( entries );
+ }
+
+ return url;
+}
+
+OUString SvxConfigPageHelper::GetModuleName( const OUString& aModuleId )
+{
+ if ( aModuleId == "com.sun.star.text.TextDocument" ||
+ aModuleId == "com.sun.star.text.GlobalDocument" )
+ return OUString("Writer");
+ else if ( aModuleId == "com.sun.star.text.WebDocument" )
+ return OUString("Writer/Web");
+ else if ( aModuleId == "com.sun.star.drawing.DrawingDocument" )
+ return OUString("Draw");
+ else if ( aModuleId == "com.sun.star.presentation.PresentationDocument" )
+ return OUString("Impress");
+ else if ( aModuleId == "com.sun.star.sheet.SpreadsheetDocument" )
+ return OUString("Calc");
+ else if ( aModuleId == "com.sun.star.script.BasicIDE" )
+ return OUString("Basic");
+ else if ( aModuleId == "com.sun.star.formula.FormulaProperties" )
+ return OUString("Math");
+ else if ( aModuleId == "com.sun.star.sdb.RelationDesign" )
+ return OUString("Relation Design");
+ else if ( aModuleId == "com.sun.star.sdb.QueryDesign" )
+ return OUString("Query Design");
+ else if ( aModuleId == "com.sun.star.sdb.TableDesign" )
+ return OUString("Table Design");
+ else if ( aModuleId == "com.sun.star.sdb.DataSourceBrowser" )
+ return OUString("Data Source Browser" );
+ else if ( aModuleId == "com.sun.star.sdb.DatabaseDocument" )
+ return OUString("Database" );
+
+ return OUString();
+}
+
+OUString SvxConfigPageHelper::GetUIModuleName(
+ const OUString& aModuleId,
+ const css::uno::Reference< css::frame::XModuleManager2 >& rModuleManager )
+{
+ assert(rModuleManager.is());
+
+ OUString aModuleUIName;
+
+ try
+ {
+ css::uno::Any a = rModuleManager->getByName( aModuleId );
+ css::uno::Sequence< css::beans::PropertyValue > aSeq;
+
+ if ( a >>= aSeq )
+ {
+ for ( sal_Int32 i = 0; i < aSeq.getLength(); ++i )
+ {
+ if ( aSeq[i].Name == "ooSetupFactoryUIName" )
+ {
+ aSeq[i].Value >>= aModuleUIName;
+ break;
+ }
+ }
+ }
+ }
+ catch ( css::uno::RuntimeException& )
+ {
+ throw;
+ }
+ catch ( css::uno::Exception& )
+ {
+ }
+
+ if ( aModuleUIName.isEmpty() )
+ aModuleUIName = GetModuleName( aModuleId );
+
+ return aModuleUIName;
+}
+
+bool SvxConfigPageHelper::GetMenuItemData(
+ const css::uno::Reference< css::container::XIndexAccess >& rItemContainer,
+ sal_Int32 nIndex,
+ OUString& rCommandURL,
+ OUString& rLabel,
+ sal_uInt16& rType,
+ css::uno::Reference< css::container::XIndexAccess >& rSubMenu )
+{
+ try
+ {
+ css::uno::Sequence< css::beans::PropertyValue > aProp;
+ if ( rItemContainer->getByIndex( nIndex ) >>= aProp )
+ {
+ for ( sal_Int32 i = 0; i < aProp.getLength(); ++i )
+ {
+ if ( aProp[i].Name == ITEM_DESCRIPTOR_COMMANDURL )
+ {
+ aProp[i].Value >>= rCommandURL;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_CONTAINER )
+ {
+ aProp[i].Value >>= rSubMenu;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_LABEL )
+ {
+ aProp[i].Value >>= rLabel;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_TYPE )
+ {
+ aProp[i].Value >>= rType;
+ }
+ }
+
+ return true;
+ }
+ }
+ catch ( css::lang::IndexOutOfBoundsException& )
+ {
+ }
+
+ return false;
+}
+
+bool SvxConfigPageHelper::GetToolbarItemData(
+ const css::uno::Reference< css::container::XIndexAccess >& rItemContainer,
+ sal_Int32 nIndex,
+ OUString& rCommandURL,
+ OUString& rLabel,
+ sal_uInt16& rType,
+ bool& rIsVisible,
+ sal_Int32& rStyle )
+{
+ try
+ {
+ css::uno::Sequence< css::beans::PropertyValue > aProp;
+ if ( rItemContainer->getByIndex( nIndex ) >>= aProp )
+ {
+ for ( sal_Int32 i = 0; i < aProp.getLength(); ++i )
+ {
+ if ( aProp[i].Name == ITEM_DESCRIPTOR_COMMANDURL )
+ {
+ aProp[i].Value >>= rCommandURL;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_STYLE )
+ {
+ aProp[i].Value >>= rStyle;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_LABEL )
+ {
+ aProp[i].Value >>= rLabel;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_TYPE )
+ {
+ aProp[i].Value >>= rType;
+ }
+ else if ( aProp[i].Name == ITEM_DESCRIPTOR_ISVISIBLE )
+ {
+ aProp[i].Value >>= rIsVisible;
+ }
+ }
+
+ return true;
+ }
+ }
+ catch ( css::lang::IndexOutOfBoundsException& )
+ {
+ }
+
+ return false;
+}
+
+css::uno::Sequence< css::beans::PropertyValue > SvxConfigPageHelper::ConvertSvxConfigEntry(
+ const SvxConfigEntry* pEntry )
+{
+ css::uno::Sequence< css::beans::PropertyValue > aPropSeq( 3 );
+
+ aPropSeq[0].Name = ITEM_DESCRIPTOR_COMMANDURL;
+ aPropSeq[0].Value <<= pEntry->GetCommand();
+
+ aPropSeq[1].Name = ITEM_DESCRIPTOR_TYPE;
+ aPropSeq[1].Value <<= css::ui::ItemType::DEFAULT;
+
+ // If the name has not been changed, then the label can be stored
+ // as an empty string.
+ // It will be initialised again later using the command to label map.
+ aPropSeq[2].Name = ITEM_DESCRIPTOR_LABEL;
+ if ( !pEntry->HasChangedName() && !pEntry->GetCommand().isEmpty() )
+ {
+ aPropSeq[2].Value <<= OUString();
+ }
+ else
+ {
+ aPropSeq[2].Value <<= pEntry->GetName();
+ }
+
+ return aPropSeq;
+}
+
+css::uno::Sequence< css::beans::PropertyValue > SvxConfigPageHelper::ConvertToolbarEntry(
+ const SvxConfigEntry* pEntry )
+{
+ css::uno::Sequence< css::beans::PropertyValue > aPropSeq( 4 );
+
+ aPropSeq[0].Name = ITEM_DESCRIPTOR_COMMANDURL;
+ aPropSeq[0].Value <<= pEntry->GetCommand();
+
+ aPropSeq[1].Name = ITEM_DESCRIPTOR_TYPE;
+ aPropSeq[1].Value <<= css::ui::ItemType::DEFAULT;
+
+ // If the name has not been changed, then the label can be stored
+ // as an empty string.
+ // It will be initialised again later using the command to label map.
+ aPropSeq[2].Name = ITEM_DESCRIPTOR_LABEL;
+ if ( !pEntry->HasChangedName() && !pEntry->GetCommand().isEmpty() )
+ {
+ aPropSeq[2].Value <<= OUString();
+ }
+ else
+ {
+ aPropSeq[2].Value <<= pEntry->GetName();
+ }
+
+ aPropSeq[3].Name = ITEM_DESCRIPTOR_ISVISIBLE;
+ aPropSeq[3].Value <<= pEntry->IsVisible();
+
+ return aPropSeq;
+}
+
+bool SvxConfigPageHelper::showKeyConfigTabPage(
+ const css::uno::Reference< css::frame::XFrame >& xFrame )
+{
+ if (!xFrame.is())
+ {
+ return false;
+ }
+ OUString sModuleId(
+ css::frame::ModuleManager::create(
+ comphelper::getProcessComponentContext())
+ ->identify(xFrame));
+ return !sModuleId.isEmpty()
+ && sModuleId != "com.sun.star.frame.StartModule";
+}
+
+bool SvxConfigPageHelper::EntrySort( SvxConfigEntry* a, SvxConfigEntry* b )
+{
+ return a->GetName().compareTo( b->GetName() ) < 0;
+}
+
+bool SvxConfigPageHelper::SvxConfigEntryModified( SvxConfigEntry* pEntry )
+{
+ SvxEntries* pEntries = pEntry->GetEntries();
+ if ( !pEntries )
+ return false;
+
+ for ( const auto& entry : *pEntries )
+ {
+ if ( entry->IsModified() || SvxConfigEntryModified( entry ) )
+ return true;
+ }
+ return false;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx
index 48ab816a12aa..30b770271899 100644
--- a/cui/source/customize/SvxMenuConfigPage.cxx
+++ b/cui/source/customize/SvxMenuConfigPage.cxx
@@ -59,6 +59,7 @@
#include "acccfg.hxx"
#include "cfg.hxx"
#include "SvxMenuConfigPage.hxx"
+#include "SvxConfigPageHelper.hxx"
#include "eventdlg.hxx"
#include <dialmgr.hxx>
@@ -252,7 +253,7 @@ void SvxMenuConfigPage::DeleteSelectedTopLevel()
SvxEntries* pParentEntries =
FindParentForChild( GetSaveInData()->GetEntries(), pMenuData );
- killmelater::RemoveEntry( pParentEntries, pMenuData );
+ SvxConfigPageHelper::RemoveEntry( pParentEntries, pMenuData );
delete pMenuData;
ReloadTopLevelListBox();
@@ -274,7 +275,7 @@ void SvxMenuConfigPage::DeleteSelectedContent()
SvxConfigEntry* pMenu = GetTopLevelSelection();
// remove menu entry from the list for this menu
- killmelater::RemoveEntry( pMenu->GetEntries(), pMenuEntry );
+ SvxConfigPageHelper::RemoveEntry( pMenu->GetEntries(), pMenuEntry );
// remove menu entry from UI
m_pContentsListBox->GetModel()->Remove( pActEntry );
@@ -300,7 +301,7 @@ short SvxMenuConfigPage::QueryReset()
OUString saveInName = m_pSaveInListBox->GetEntry(
m_pSaveInListBox->GetSelectEntryPos() );
- OUString label = killmelater::replaceSaveInName( msg, saveInName );
+ OUString label = SvxConfigPageHelper::replaceSaveInName( msg, saveInName );
ScopedVclPtrInstance<QueryBox> qbox( this, WB_YES_NO, label );
@@ -350,7 +351,7 @@ IMPL_LINK( SvxMenuConfigPage, MenuSelectHdl, MenuButton *, pButton, void )
{
SvxConfigEntry* pMenuData = GetTopLevelSelection();
- OUString aNewName( killmelater::stripHotKey( pMenuData->GetName() ) );
+ OUString aNewName( SvxConfigPageHelper::stripHotKey( pMenuData->GetName() ) );
OUString aDesc = CuiResId( RID_SVXSTR_LABEL_NEW_NAME );
VclPtrInstance< SvxNameDialog > pNameDialog( this, aNewName, aDesc );
@@ -394,7 +395,7 @@ IMPL_LINK( SvxMenuConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
SvxConfigEntry* pEntry =
static_cast<SvxConfigEntry*>(pActEntry->GetUserData());
- OUString aNewName( killmelater::stripHotKey( pEntry->GetName() ) );
+ OUString aNewName( SvxConfigPageHelper::stripHotKey( pEntry->GetName() ) );
OUString aDesc = CuiResId( RID_SVXSTR_LABEL_NEW_NAME );
VclPtrInstance< SvxNameDialog > pNameDialog( this, aNewName, aDesc );
diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx
index 74d85256d947..503d741eb4a6 100644
--- a/cui/source/customize/SvxToolbarConfigPage.cxx
+++ b/cui/source/customize/SvxToolbarConfigPage.cxx
@@ -59,6 +59,7 @@
#include "acccfg.hxx"
#include "cfg.hxx"
#include "SvxToolbarConfigPage.hxx"
+#include "SvxConfigPageHelper.hxx"
#include "eventdlg.hxx"
#include <dialmgr.hxx>
@@ -281,7 +282,7 @@ void SvxToolbarConfigPage::DeleteSelectedContent()
SvxConfigEntry* pToolbar = GetTopLevelSelection();
// remove entry from the list for this toolbar
- killmelater::RemoveEntry( pToolbar->GetEntries(), pEntry );
+ SvxConfigPageHelper::RemoveEntry( pToolbar->GetEntries(), pEntry );
// remove toolbar entry from UI
m_pContentsListBox->GetModel()->Remove( pActEntry );
@@ -347,7 +348,7 @@ IMPL_LINK( SvxToolbarConfigPage, ToolbarSelectHdl, MenuButton *, pButton, void )
}
else if (sCommand == "modtoolrename")
{
- OUString aNewName( killmelater::stripHotKey( pToolbar->GetName() ) );
+ OUString aNewName( SvxConfigPageHelper::stripHotKey( pToolbar->GetName() ) );
OUString aDesc = CuiResId( RID_SVXSTR_LABEL_NEW_NAME );
VclPtrInstance< SvxNameDialog > pNameDialog( this, aNewName, aDesc );
@@ -386,7 +387,7 @@ IMPL_LINK( SvxToolbarConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
SvxConfigEntry* pEntry =
static_cast<SvxConfigEntry*>(pActEntry->GetUserData());
- OUString aNewName( killmelater::stripHotKey( pEntry->GetName() ) );
+ OUString aNewName( SvxConfigPageHelper::stripHotKey( pEntry->GetName() ) );
OUString aDesc = CuiResId( RID_SVXSTR_LABEL_NEW_NAME );
VclPtrInstance< SvxNameDialog > pNameDialog( this, aNewName, aDesc );
@@ -433,7 +434,7 @@ IMPL_LINK( SvxToolbarConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
{
pEntry->SetName( aSystemName );
m_pContentsListBox->SetEntryText(
- pActEntry, killmelater::stripHotKey( aSystemName ) );
+ pActEntry, SvxConfigPageHelper::stripHotKey( aSystemName ) );
bNeedsApply = true;
}
@@ -442,7 +443,7 @@ IMPL_LINK( SvxToolbarConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
try
{
GetSaveInData()->GetImageManager()->removeImages(
- killmelater::GetImageType(), aURLSeq );
+ SvxConfigPageHelper::GetImageType(), aURLSeq );
// reset backup in entry
pEntry->SetBackupGraphic(
@@ -508,7 +509,7 @@ IMPL_LINK( SvxToolbarConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
if ( !pEntry->GetBackupGraphic().is() )
{
css::uno::Reference< css::graphic::XGraphic > backup;
- backup = killmelater::GetGraphic(
+ backup = SvxConfigPageHelper::GetGraphic(
GetSaveInData()->GetImageManager(), aURLSeq[ 0 ] );
if ( backup.is() )
@@ -521,7 +522,7 @@ IMPL_LINK( SvxToolbarConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
try
{
GetSaveInData()->GetImageManager()->replaceImages(
- killmelater::GetImageType(), aURLSeq, aGraphicSeq );
+ SvxConfigPageHelper::GetImageType(), aURLSeq, aGraphicSeq );
m_pContentsListBox->GetModel()->Remove( pActEntry );
SvTreeListEntry* pNewLBEntry =
@@ -574,7 +575,7 @@ IMPL_LINK( SvxToolbarConfigPage, EntrySelectHdl, MenuButton *, pButton, void )
try
{
GetSaveInData()->GetImageManager()->replaceImages(
- killmelater::GetImageType(), aURLSeq, aGraphicSeq );
+ SvxConfigPageHelper::GetImageType(), aURLSeq, aGraphicSeq );
m_pContentsListBox->GetModel()->Remove( pActEntry );
@@ -704,7 +705,7 @@ short SvxToolbarConfigPage::QueryReset()
OUString saveInName = m_pSaveInListBox->GetEntry(
m_pSaveInListBox->GetSelectEntryPos() );
- OUString label = killmelater::replaceSaveInName( msg, saveInName );
+ OUString label = SvxConfigPageHelper::replaceSaveInName( msg, saveInName );
ScopedVclPtrInstance< QueryBox > qbox( this, WB_YES_NO, label );
@@ -828,10 +829,10 @@ IMPL_LINK_NOARG( SvxToolbarConfigPage, NewToolbarHdl, Button *, void )
OUString prefix = CuiResId( RID_SVXSTR_NEW_TOOLBAR );
OUString aNewName =
- killmelater::generateCustomName( prefix, GetSaveInData()->GetEntries() );
+ SvxConfigPageHelper::generateCustomName( prefix, GetSaveInData()->GetEntries() );
OUString aNewURL =
- killmelater::generateCustomURL( GetSaveInData()->GetEntries() );
+ SvxConfigPageHelper::generateCustomURL( GetSaveInData()->GetEntries() );
VclPtrInstance< SvxNewToolbarDialog > pNameDialog( nullptr, aNewName );
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 5103843ce63e..3e1a5337fdcc 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -59,6 +59,7 @@
#include "cfg.hxx"
#include "SvxMenuConfigPage.hxx"
#include "SvxToolbarConfigPage.hxx"
+#include "SvxConfigPageHelper.hxx"
#include "eventdlg.hxx"
#include <dialmgr.hxx>
@@ -216,7 +217,7 @@ SvxConfigDialog::SvxConfigDialog(vcl::Window * pParent, const SfxItemSet* pInSet
, m_nToolbarsPageId(0)
, m_nEventsPageId(0)
{
- killmelater::InitImageType();
+ SvxConfigPageHelper::InitImageType();
m_nMenusPageId = AddTabPage("menus", CreateSvxMenuConfigPage, nullptr);
m_nContextMenusPageId = AddTabPage("contextmenus", CreateSvxContextMenuConfigPage, nullptr);
@@ -242,7 +243,7 @@ void SvxConfigDialog::SetFrame(const css::uno::Reference< css::frame::XFrame >&
{
m_xFrame = xFrame;
- if (!killmelater::showKeyConfigTabPage( xFrame ))
+ if (!SvxConfigPageHelper::showKeyConfigTabPage( xFrame ))
RemoveTabPage(m_nKeyboardPageId);
}
@@ -329,7 +330,7 @@ Image SaveInData::GetImage( const OUString& rCommandURL )
Image aImage;
uno::Reference< graphic::XGraphic > xGraphic =
- killmelater::GetGraphic( m_xImgMgr, rCommandURL );
+ SvxConfigPageHelper::GetGraphic( m_xImgMgr, rCommandURL );
if ( xGraphic.is() )
{
@@ -337,7 +338,7 @@ Image SaveInData::GetImage( const OUString& rCommandURL )
}
else if ( xDefaultImgMgr != nullptr && (*xDefaultImgMgr).is() )
{
- xGraphic = killmelater::GetGraphic( (*xDefaultImgMgr), rCommandURL );
+ xGraphic = SvxConfigPageHelper::GetGraphic( (*xDefaultImgMgr), rCommandURL );
if ( xGraphic.is() )
{
@@ -469,7 +470,7 @@ bool SaveInData::LoadSubMenus( const uno::Reference< container::XIndexAccess >&
sal_uInt16 nType( css::ui::ItemType::DEFAULT );
- bool bItem = killmelater::GetMenuItemData( xMenuSettings, nIndex,
+ bool bItem = SvxConfigPageHelper::GetMenuItemData( xMenuSettings, nIndex,
aCommandURL, aLabel, nType, xSubMenu );
if ( bItem )
@@ -547,7 +548,7 @@ bool SaveInData::LoadSubMenus( const uno::Reference< container::XIndexAccess >&
pEntry->SetMain();
}
- subMenuTitle += killmelater::stripHotKey( aLabel );
+ subMenuTitle += SvxConfigPageHelper::stripHotKey( aLabel );
LoadSubMenus( xSubMenu, subMenuTitle, pEntry, bContextMenu );
}
@@ -628,7 +629,7 @@ void MenuSaveInData::Apply(
SvxConfigEntry* pEntryData = *iter;
uno::Sequence< beans::PropertyValue > aPropValueSeq =
- killmelater::ConvertSvxConfigEntry( pEntryData );
+ SvxConfigPageHelper::ConvertSvxConfigEntry( pEntryData );
uno::Reference< container::XIndexContainer > xSubMenuBar(
rFactory->createInstanceWithContext( xContext ),
@@ -661,7 +662,7 @@ void SaveInData::ApplyMenu(
if ( pEntry->IsPopup() )
{
uno::Sequence< beans::PropertyValue > aPropValueSeq =
- killmelater::ConvertSvxConfigEntry( pEntry );
+ SvxConfigPageHelper::ConvertSvxConfigEntry( pEntry );
uno::Reference< container::XIndexContainer > xSubMenuBar(
rFactory->createInstanceWithContext( xContext ),
@@ -686,7 +687,7 @@ void SaveInData::ApplyMenu(
else
{
uno::Sequence< beans::PropertyValue > aPropValueSeq =
- killmelater::ConvertSvxConfigEntry( pEntry );
+ SvxConfigPageHelper::ConvertSvxConfigEntry( pEntry );
rMenuBar->insertByIndex(
rMenuBar->getCount(), uno::Any( aPropValueSeq ));
}
@@ -856,7 +857,7 @@ SvxEntries* ContextMenuSaveInData::GetEntries()
LoadSubMenus( xPopupMenu, aUIMenuName, pEntry, true );
}
}
- std::sort( m_pRootEntry->GetEntries()->begin(), m_pRootEntry->GetEntries()->end(), killmelater::EntrySort );
+ std::sort( m_pRootEntry->GetEntries()->begin(), m_pRootEntry->GetEntries()->end(), SvxConfigPageHelper::EntrySort );
}
return m_pRootEntry->GetEntries();
}
@@ -890,7 +891,7 @@ bool ContextMenuSaveInData::Apply()
SvxEntries* pEntries = GetEntries();
for ( const auto& pEntry : *pEntries )
{
- if ( pEntry->IsModified() || killmelater::SvxConfigEntryModified( pEntry ) )
+ if ( pEntry->IsModified() || SvxConfigPageHelper::SvxConfigEntryModified( pEntry ) )
{
css::uno::Reference< css::container::XIndexContainer > xIndexContainer( GetConfigManager()->createSettings(), css::uno::UNO_QUERY );
css::uno::Reference< css::lang::XSingleComponentFactory > xFactory( xIndexContainer, css::uno::UNO_QUERY );
@@ -1242,7 +1243,7 @@ void SvxConfigPage::Reset( const SfxItemSet* )
// replace %MODULENAME in the label with the correct module name
uno::Reference< css::frame::XModuleManager2 > xModuleManager(
css::frame::ModuleManager::create( xContext ));
- OUString aModuleName = killmelater::GetUIModuleName( aModuleId, xModuleManager );
+ OUString aModuleName = SvxConfigPageHelper::GetUIModuleName( aModuleId, xModuleManager );
OUString title = m_pTopLevel->get_label();
OUString aSearchString("%MODULENAME" );
@@ -1531,13 +1532,13 @@ void SvxConfigPage::ReloadTopLevelListBox( SvxConfigEntry* pToSelect )
for ( ; iter != end; ++iter )
{
SvxConfigEntry* pEntryData = *iter;
- const sal_Int32 nPos = m_pTopLevelListBox->InsertEntry( killmelater::stripHotKey( pEntryData->GetName() ) );
+ const sal_Int32 nPos = m_pTopLevelListBox->InsertEntry( SvxConfigPageHelper::stripHotKey( pEntryData->GetName() ) );
m_pTopLevelListBox->SetEntryData( nPos, pEntryData );
if ( pEntryData == pToSelect )
nSelectionPos = nPos;
- AddSubMenusToUI( killmelater::stripHotKey( pEntryData->GetName() ), pEntryData );
+ AddSubMenusToUI( SvxConfigPageHelper::stripHotKey( pEntryData->GetName() ), pEntryData );
}
}
#ifdef DBG_UTIL
@@ -1568,7 +1569,7 @@ void SvxConfigPage::AddSubMenusToUI(
if ( pEntryData->IsPopup() )
{
- OUString subMenuTitle = rBaseTitle + aMenuSeparatorStr + killmelater::stripHotKey( pEntryData->GetName() );
+ OUString subMenuTitle = rBaseTitle + aMenuSeparatorStr + SvxConfigPageHelper::stripHotKey( pEntryData->GetName() );
const sal_Int32 nPos = m_pTopLevelListBox->InsertEntry( subMenuTitle );
m_pTopLevelListBox->SetEntryData( nPos, pEntryData );
@@ -1731,7 +1732,7 @@ SvTreeListEntry* SvxConfigPage::InsertEntryIntoUI(
}
else
{
- OUString aName = killmelater::stripHotKey( pNewEntryData->GetName() );
+ OUString aName = SvxConfigPageHelper::stripHotKey( pNewEntryData->GetName() );
Image aImage = GetSaveInData()->GetImage(
pNewEntryData->GetCommand());
@@ -1826,7 +1827,7 @@ bool SvxConfigPage::MoveEntryData(
if ( pSourceData != nullptr && pTargetData != nullptr )
{
// remove the source entry from our list
- killmelater::RemoveEntry( pEntries, pSourceData );
+ SvxConfigPageHelper::RemoveEntry( pEntries, pSourceData );
SvxEntries::iterator iter = pEntries->begin();
SvxEntries::const_iterator end = pEntries->end();
@@ -1846,8 +1847,6 @@ bool SvxConfigPage::MoveEntryData(
return false;
}
-// SvxMenuConfigPage was here
-
SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
vcl::Window* pParent, SvxEntries* entries,
SvxConfigEntry* selection, bool bCreateMenu )
@@ -1872,7 +1871,7 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
{
SvxConfigEntry* pEntry = *iter;
SvTreeListEntry* pLBEntry =
- m_pMenuListBox->InsertEntry( killmelater::stripHotKey( pEntry->GetName() ) );
+ m_pMenuListBox->InsertEntry( SvxConfigPageHelper::stripHotKey( pEntry->GetName() ) );
pLBEntry->SetUserData( pEntry );
mpEntries->push_back( pEntry );
@@ -1889,8 +1888,8 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
// Generate custom name for new menu
OUString prefix = CuiResId( RID_SVXSTR_NEW_MENU );
- OUString newname = killmelater::generateCustomName( prefix, entries );
- OUString newurl = killmelater::generateCustomMenuURL( mpEntries );
+ OUString newname = SvxConfigPageHelper::generateCustomName( prefix, entries );
+ OUString newurl = SvxConfigPageHelper::generateCustomMenuURL( mpEntries );
SvxConfigEntry* pNewEntryData =
new SvxConfigEntry( newname, newurl, true );
@@ -1899,7 +1898,7 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
pNewEntryData->SetMain();
pNewMenuEntry =
- m_pMenuListBox->InsertEntry( killmelater::stripHotKey( pNewEntryData->GetName() ) );
+ m_pMenuListBox->InsertEntry( SvxConfigPageHelper::stripHotKey( pNewEntryData->GetName() ) );
m_pMenuListBox->Select( pNewMenuEntry );
pNewMenuEntry->SetUserData( pNewEntryData );
@@ -2100,8 +2099,6 @@ bool SvxConfigEntry::IsRenamable()
return !IsMain() || IsUserDefined();
}
-//SvxToolbarConfigPage class was here (first part)
-
ToolbarSaveInData::ToolbarSaveInData(
const uno::Reference < css::ui::XUIConfigurationManager >& xCfgMgr,
const uno::Reference < css::ui::XUIConfigurationManager >& xParentCfgMgr,
@@ -2480,7 +2477,7 @@ SvxEntries* ToolbarSaveInData::GetEntries()
}
}
- std::sort( GetEntries()->begin(), GetEntries()->end(), killmelater::EntrySort );
+ std::sort( GetEntries()->begin(), GetEntries()->end(), SvxConfigPageHelper::EntrySort );
}
return pRootEntry->GetEntries();
@@ -2586,7 +2583,7 @@ void ToolbarSaveInData::ApplyToolbar(
if ( pEntry->IsPopup() )
{
uno::Sequence< beans::PropertyValue > aPropValueSeq =
- killmelater::ConvertToolbarEntry( pEntry );
+ SvxConfigPageHelper::ConvertToolbarEntry( pEntry );
uno::Reference< container::XIndexContainer > xSubMenuBar(
rFactory->createInstanceWithContext( xContext ),
@@ -2609,7 +2606,7 @@ void ToolbarSaveInData::ApplyToolbar(
else
{
uno::Sequence< beans::PropertyValue > aPropValueSeq =
- killmelater::ConvertToolbarEntry( pEntry );
+ SvxConfigPageHelper::ConvertToolbarEntry( pEntry );
rToolbarBar->insertByIndex(
rToolbarBar->getCount(), uno::Any( aPropValueSeq ));
@@ -2717,7 +2714,7 @@ void ToolbarSaveInData::RemoveToolbar( SvxConfigEntry* pToolbar )
{
OUString url = pToolbar->GetCommand();
GetConfigManager()->removeSettings( url );
- killmelater::RemoveEntry( GetEntries(), pToolbar );
+ SvxConfigPageHelper::RemoveEntry( GetEntries(), pToolbar );
delete pToolbar;
PersistChanges( GetConfigManager() );
@@ -2783,7 +2780,7 @@ void ToolbarSaveInData::RestoreToolbar( SvxConfigEntry* pToolbar )
try
{
- GetImageManager()->removeImages( killmelater::GetImageType(), aURLSeq );
+ GetImageManager()->removeImages( SvxConfigPageHelper::GetImageType(), aURLSeq );
}
catch ( uno::Exception& )
{
@@ -2814,7 +2811,7 @@ void ToolbarSaveInData::LoadToolbar(
sal_uInt16 nType( css::ui::ItemType::DEFAULT );
- bool bItem = killmelater::GetToolbarItemData( xToolbarSettings, nIndex, aCommandURL,
+ bool bItem = SvxConfigPageHelper::GetToolbarItemData( xToolbarSettings, nIndex, aCommandURL,
aLabel, nType, bIsVisible, nStyle );
if ( bItem )
@@ -2876,9 +2873,6 @@ void ToolbarSaveInData::LoadToolbar(
}
}
-//SvxToolbarConfigPage class was here (second part)
-//SvxToolbarEntriesListBox class was here
-
SvxNewToolbarDialog::SvxNewToolbarDialog(vcl::Window* pWindow, const OUString& rName)
: ModalDialog(pWindow, "NewToolbarDialog", "cui/ui/newtoolbardialog.ui")
{
@@ -2933,14 +2927,14 @@ SvxIconSelectorDialog::SvxIconSelectorDialog( vcl::Window *pWindow,
pTbSymbol->SetPageScroll( true );
m_nExpectedSize = 16;
- if (killmelater::GetImageType() & css::ui::ImageType::SIZE_LARGE)
+ if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
m_nExpectedSize = 26;
- else if (killmelater::GetImageType() & css::ui::ImageType::SIZE_32)
+ else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
m_nExpectedSize = 32;
if ( m_nExpectedSize != 16 )
{
- pFtNote->SetText( killmelater::replaceSixteen( pFtNote->GetText(), m_nExpectedSize ) );
+ pFtNote->SetText( SvxConfigPageHelper::replaceSixteen( pFtNote->GetText(), m_nExpectedSize ) );
}
uno::Reference< uno::XComponentContext > xComponentContext =
@@ -2999,7 +2993,7 @@ SvxIconSelectorDialog::SvxIconSelectorDialog( vcl::Window *pWindow,
uno::Sequence< OUString > names;
if ( m_xImportedImageManager.is() )
{
- names = m_xImportedImageManager->getAllImageNames( killmelater::GetImageType() );
+ names = m_xImportedImageManager->getAllImageNames( SvxConfigPageHelper::GetImageType() );
for ( sal_Int32 n = 0; n < names.getLength(); ++n )
aImageInfo1.insert( ImageInfo::value_type( names[n], false ));
}
@@ -3009,7 +3003,7 @@ SvxIconSelectorDialog::SvxIconSelectorDialog( vcl::Window *pWindow,
while ( pConstIter != aImageInfo1.end() )
{
name[ 0 ] = pConstIter->first;
- uno::Sequence< uno::Reference< graphic::XGraphic> > graphics = m_xImportedImageManager->getImages( killmelater::GetImageType(), name );
+ uno::Sequence< uno::Reference< graphic::XGraphic> > graphics = m_xImportedImageManager->getImages( SvxConfigPageHelper::GetImageType(), name );
if ( graphics.getLength() > 0 )
{
Image img = Image( graphics[ 0 ] );
@@ -3029,12 +3023,12 @@ SvxIconSelectorDialog::SvxIconSelectorDialog( vcl::Window *pWindow,
if ( m_xParentImageManager.is() )
{
- names = m_xParentImageManager->getAllImageNames( killmelater::GetImageType() );
+ names = m_xParentImageManager->getAllImageNames( SvxConfigPageHelper::GetImageType() );
for ( sal_Int32 n = 0; n < names.getLength(); ++n )
aImageInfo.insert( ImageInfo::value_type( names[n], false ));
}
- names = m_xImageManager->getAllImageNames( killmelater::GetImageType() );
+ names = m_xImageManager->getAllImageNames( SvxConfigPageHelper::GetImageType() );
for ( sal_Int32 n = 0; n < names.getLength(); ++n )
{
ImageInfo::iterator pIter = aImageInfo.find( names[n] );
@@ -3054,9 +3048,9 @@ SvxIconSelectorDialog::SvxIconSelectorDialog( vcl::Window *pWindow,
try
{
if ( pConstIter->second )
- graphics = m_xImageManager->getImages( killmelater::GetImageType(), name );
+ graphics = m_xImageManager->getImages( SvxConfigPageHelper::GetImageType(), name );
else
- graphics = m_xParentImageManager->getImages( killmelater::GetImageType(), name );
+ graphics = m_xParentImageManager->getImages( SvxConfigPageHelper::GetImageType(), name );
}
catch ( uno::Exception& )
{
@@ -3162,7 +3156,7 @@ IMPL_LINK( SvxIconSelectorDialog, SelectHdl, ToolBox *, pToolBox, void )
pTbSymbol->CheckItem( nId );
OUString aSelImageText = pTbSymbol->GetItemText( nId );
- if ( m_xImportedImageManager->hasImage( killmelater::GetImageType(), aSelImageText ) )
+ if ( m_xImportedImageManager->hasImage( SvxConfigPageHelper::GetImageType(), aSelImageText ) )
{
pBtnDelete->Enable();
}
@@ -3214,7 +3208,7 @@ IMPL_LINK_NOARG( SvxIconSelectorDialog, DeleteHdl, Button *, void )
OUString aSelImageText = pTbSymbol->GetItemText( nId );
uno::Sequence< OUString > URLs { aSelImageText };
pTbSymbol->RemoveItem( pTbSymbol->GetItemPos( nId ) );
- m_xImportedImageManager->removeImages( killmelater::GetImageType(), URLs );
+ m_xImportedImageManager->removeImages( SvxConfigPageHelper::GetImageType(), URLs );
uno::Reference< css::ui::XUIConfigurationPersistence >
xConfigPersistence( m_xImportedImageManager, uno::UNO_QUERY );
if ( xConfigPersistence.is() && xConfigPersistence->isModified() )
@@ -3287,7 +3281,7 @@ bool SvxIconSelectorDialog::ReplaceGraphicItem(
URLs[0] = aURL;
aImportGraph[ 0 ] = xGraphic;
- m_xImportedImageManager->replaceImages( killmelater::GetImageType(), URLs, aImportGraph );
+ m_xImportedImageManager->replaceImages( SvxConfigPageHelper::GetImageType(), URLs, aImportGraph );
xConfigPer->store();
bResult = true;
@@ -3317,7 +3311,7 @@ void SvxIconSelectorDialog::ImportGraphics(
if ( rPaths.getLength() == 1 )
{
- if ( m_xImportedImageManager->hasImage( killmelater::GetImageType(), rPaths[0] ) )
+ if ( m_xImportedImageManager->hasImage( SvxConfigPageHelper::GetImageType(), rPaths[0] ) )
{
aIndex = rPaths[0].lastIndexOf( '/' );
aIconName = rPaths[0].copy( aIndex+1 );
@@ -3345,7 +3339,7 @@ void SvxIconSelectorDialog::ImportGraphics(
for ( sal_Int32 i = 1; i < rPaths.getLength(); ++i )
{
OUString aPath = aSourcePath + rPaths[i];
- if ( m_xImportedImageManager->hasImage( killmelater::GetImageType(), aPath ) )
+ if ( m_xImportedImageManager->hasImage( SvxConfigPageHelper::GetImageType(), aPath ) )
{
aIndex = rPaths[i].lastIndexOf( '/' );
aIconName = rPaths[i].copy( aIndex+1 );
@@ -3451,7 +3445,7 @@ bool SvxIconSelectorDialog::ImportGraphic( const OUString& aURL )
uno::Sequence<OUString> aImportURL { aURL };
uno::Sequence< uno::Reference<graphic::XGraphic > > aImportGraph( 1 );
aImportGraph[ 0 ] = xGraphic;
- m_xImportedImageManager->insertImages( killmelater::GetImageType(), aImportURL, aImportGraph );
+ m_xImportedImageManager->insertImages( SvxConfigPageHelper::GetImageType(), aImportURL, aImportGraph );
uno::Reference< css::ui::XUIConfigurationPersistence >
xConfigPersistence( m_xImportedImageManager, uno::UNO_QUERY );
diff --git a/cui/source/inc/SvxConfigPageHelper.hxx b/cui/source/inc/SvxConfigPageHelper.hxx
new file mode 100644
index 000000000000..4b83b1c7dfd6
--- /dev/null
+++ b/cui/source/inc/SvxConfigPageHelper.hxx
@@ -0,0 +1,89 @@
+/* -*- 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_CUI_SOURCE_INC_SVXCONFIGPAGEHELPER_HXX
+#define INCLUDED_CUI_SOURCE_INC_SVXCONFIGPAGEHELPER_HXX
+
+#include <vector>
+
+#include "cfg.hxx"
+
+class SvxConfigPageHelper
+{
+public:
+ static void RemoveEntry( SvxEntries* pEntries, SvxConfigEntry* pChildEntry );
+
+ static OUString replaceSaveInName( const OUString& rMessage, const OUString& rSaveInName );
+ static OUString stripHotKey( const OUString& str );
+ static OUString replaceSixteen( const OUString& str, sal_Int32 nReplacement );
+
+ static sal_Int16 GetImageType();
+ static void InitImageType();
+ static css::uno::Reference< css::graphic::XGraphic > GetGraphic(
+ const css::uno::Reference< css::ui::XImageManager >& xImageManager,
+ const OUString& rCommandURL );
+
+ static OUString generateCustomName(
+ const OUString& prefix,
+ SvxEntries* entries,
+ sal_Int32 suffix = 1 );
+ static OUString generateCustomMenuURL(
+ SvxEntries* entries,
+ sal_Int32 suffix = 1 );
+ static sal_uInt32 generateRandomValue();
+ static OUString generateCustomURL( SvxEntries* entries );
+
+ static OUString GetModuleName( const OUString& aModuleId );
+ static OUString GetUIModuleName(
+ const OUString& aModuleId,
+ const css::uno::Reference< css::frame::XModuleManager2 >& rModuleManager );
+
+ static bool GetMenuItemData(
+ const css::uno::Reference< css::container::XIndexAccess >& rItemContainer,
+ sal_Int32 nIndex,
+ OUString& rCommandURL,
+ OUString& rLabel,
+ sal_uInt16& rType,
+ css::uno::Reference< css::container::XIndexAccess >& rSubMenu );
+ static bool GetToolbarItemData(
+ const css::uno::Reference< css::container::XIndexAccess >& rItemContainer,
+ sal_Int32 nIndex,
+ OUString& rCommandURL,
+ OUString& rLabel,
+ sal_uInt16& rType,
+ bool& rIsVisible,
+ sal_Int32& rStyle );
+
+ static css::uno::Sequence< css::beans::PropertyValue > ConvertSvxConfigEntry(
+ const SvxConfigEntry* pEntry );
+ static css::uno::Sequence< css::beans::PropertyValue > ConvertToolbarEntry(
+ const SvxConfigEntry* pEntry );
+
+ static bool showKeyConfigTabPage(
+ const css::uno::Reference< css::frame::XFrame >& xFrame );
+
+ static bool EntrySort( SvxConfigEntry* a, SvxConfigEntry* b );
+
+ static bool SvxConfigEntryModified( SvxConfigEntry* pEntry );
+
+};
+
+#endif // INCLUDED_CUI_SOURCE_INC_SVXCONFIGPAGEHELPER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index c953340ed67a..b3192a7bdfee 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -676,508 +676,6 @@ public:
virtual void dispose() override;
};
-namespace killmelater
-{
-//TODO:This is copy/pasted from cfg.cxx
-inline void RemoveEntry( SvxEntries* pEntries, SvxConfigEntry* pChildEntry )
-{
- SvxEntries::iterator iter = pEntries->begin();
-
- while ( iter != pEntries->end() )
- {
- if ( pChildEntry == *iter )
- {
- pEntries->erase( iter );
- break;
- }
- ++iter;
- }
-}
-
-//TODO:This is copy/pasted from cfg.cxx
-inline OUString replaceSaveInName(
- const OUString& rMessage,
- const OUString& rSaveInName )
-{
- OUString name;
- OUString placeholder("%SAVE IN SELECTION%" );
-
- sal_Int32 pos = rMessage.indexOf( placeholder );
-
- if ( pos != -1 )
- {
- name = rMessage.replaceAt(
- pos, placeholder.getLength(), rSaveInName );
- }
-
- return name;
-}
-
-//TODO:This is copy/pasted from cfg.cxx
-inline OUString
-stripHotKey( const OUString& str )
-{
- sal_Int32 index = str.indexOf( '~' );
- if ( index == -1 )
- {
- return str;
- }
- else
- {
- return str.replaceAt( index, 1, OUString() );
- }
-}
-
-inline OUString
-replaceSixteen( const OUString& str, sal_Int32 nReplacement )
-{
- OUString result( str );
- OUString sixteen = OUString::number( 16 );
- OUString expected = OUString::number( nReplacement );
-
- sal_Int32 len = sixteen.getLength();
- sal_Int32 index = result.indexOf( sixteen );
-
- while ( index != -1 )
- {
- result = result.replaceAt( index, len, expected );
- index = result.indexOf( sixteen, index );
- }
-
- return result;
-}
-
-static sal_Int16 theImageType =
- css::ui::ImageType::COLOR_NORMAL |
- css::ui::ImageType::SIZE_DEFAULT;
-
-//TODO:This is copy/pasted from cfg.cxx
-inline sal_Int16 GetImageType()
-{
- return theImageType;
-}
-
-inline void InitImageType()
-{
- theImageType =
- css::ui::ImageType::COLOR_NORMAL |
- css::ui::ImageType::SIZE_DEFAULT;
-
- if (SvtMiscOptions().GetSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE)
- {
- theImageType |= css::ui::ImageType::SIZE_LARGE;
- }
- else if (SvtMiscOptions().GetSymbolsSize() == SFX_SYMBOLS_SIZE_32)
- {
- theImageType |= css::ui::ImageType::SIZE_32;
- }
-}
-
-//TODO:This is copy/pasted from cfg.cxx
-inline css::uno::Reference< css::graphic::XGraphic > GetGraphic(
- const css::uno::Reference< css::ui::XImageManager >& xImageManager,
- const OUString& rCommandURL )
-{
- css::uno::Reference< css::graphic::XGraphic > result;
-
- if ( xImageManager.is() )
- {
- // TODO handle large graphics
- css::uno::Sequence< css::uno::Reference< css::graphic::XGraphic > > aGraphicSeq;
-
- css::uno::Sequence<OUString> aImageCmdSeq { rCommandURL };
-
- try
- {
- aGraphicSeq =
- xImageManager->getImages( killmelater::GetImageType(), aImageCmdSeq );
-
- if ( aGraphicSeq.getLength() > 0 )
- {
- result = aGraphicSeq[0];
- }
- }
- catch ( css::uno::Exception& )
- {
- // will return empty XGraphic
- }
- }
-
- return result;
-}
-
-//TODO:This is copy/pasted from cfg.cxx
-inline OUString
-generateCustomName(
- const OUString& prefix,
- SvxEntries* entries,
- sal_Int32 suffix = 1 )
-{
- // find and replace the %n placeholder in the prefix string
- OUString name;
- OUString placeholder("%n" );
-
- sal_Int32 pos = prefix.indexOf( placeholder );
-
- if ( pos != -1 )
- {
- name = prefix.replaceAt(
- pos, placeholder.getLength(), OUString::number( suffix ) );
- }
- else
- {
- // no placeholder found so just append the suffix
- name = prefix + OUString::number( suffix );
- }
-
- if (!entries)
- return name;
-
- // now check is there is an already existing entry with this name
- SvxEntries::const_iterator iter = entries->begin();
-
- while ( iter != entries->end() )
- {
- SvxConfigEntry* pEntry = *iter;
-
- if ( name.equals( pEntry->GetName() ) )
- {
- break;
- }
- ++iter;
- }
-
- if ( iter != entries->end() )
- {
- // name already exists so try the next number up
- return generateCustomName( prefix, entries, ++suffix );
- }
-
- return name;
-}
-
-inline OUString
-generateCustomMenuURL(
- SvxEntries* entries,
- sal_Int32 suffix = 1 )
-{
- OUString url = "vnd.openoffice.org:CustomMenu" + OUString::number( suffix );
- if (!entries)
- return url;
-
- // now check is there is an already existing entry with this url
- SvxEntries::const_iterator iter = entries->begin();
-
- while ( iter != entries->end() )
- {
- SvxConfigEntry* pEntry = *iter;
-
- if ( url.equals( pEntry->GetCommand() ) )
- {
- break;
- }
- ++iter;
- }
-
- if ( iter != entries->end() )
- {
- // url already exists so try the next number up
- return generateCustomMenuURL( entries, ++suffix );
- }
-
- return url;
-}
-
-inline sal_uInt32 generateRandomValue()
-{
- return comphelper::rng::uniform_uint_distribution(0, std::numeric_limits<unsigned int>::max());
-}
-
-inline OUString
-generateCustomURL(
- SvxEntries* entries )
-{
- OUString url = ITEM_TOOLBAR_URL;
- url += CUSTOM_TOOLBAR_STR;
-
- // use a random number to minimize possible clash with existing custom toolbars
- url += OUString::number( generateRandomValue(), 16 );
-
- // now check is there is an already existing entry with this url
- SvxEntries::const_iterator iter = entries->begin();
-
- while ( iter != entries->end() )
- {
- SvxConfigEntry* pEntry = *iter;
-
- if ( url.equals( pEntry->GetCommand() ) )
- {
- break;
- }
- ++iter;
- }
-
- if ( iter != entries->end() )
- {
- // url already exists so try the next number up
- return generateCustomURL( entries );
- }
-
- return url;
-}
-
-inline OUString GetModuleName( const OUString& aModuleId )
-{
- if ( aModuleId == "com.sun.star.text.TextDocument" ||
- aModuleId == "com.sun.star.text.GlobalDocument" )
- return OUString("Writer");
- else if ( aModuleId == "com.sun.star.text.WebDocument" )
- return OUString("Writer/Web");
- else if ( aModuleId == "com.sun.star.drawing.DrawingDocument" )
- return OUString("Draw");
- else if ( aModuleId == "com.sun.star.presentation.PresentationDocument" )
- return OUString("Impress");
- else if ( aModuleId == "com.sun.star.sheet.SpreadsheetDocument" )
- return OUString("Calc");
- else if ( aModuleId == "com.sun.star.script.BasicIDE" )
- return OUString("Basic");
- else if ( aModuleId == "com.sun.star.formula.FormulaProperties" )
- return OUString("Math");
- else if ( aModuleId == "com.sun.star.sdb.RelationDesign" )
- return OUString("Relation Design");
- else if ( aModuleId == "com.sun.star.sdb.QueryDesign" )
- return OUString("Query Design");
- else if ( aModuleId == "com.sun.star.sdb.TableDesign" )
- return OUString("Table Design");
- else if ( aModuleId == "com.sun.star.sdb.DataSourceBrowser" )
- return OUString("Data Source Browser" );
- else if ( aModuleId == "com.sun.star.sdb.DatabaseDocument" )
- return OUString("Database" );
-
- return OUString();
-}
-
-inline OUString GetUIModuleName( const OUString& aModuleId, const css::uno::Reference< css::frame::XModuleManager2 >& rModuleManager )
-{
- assert(rModuleManager.is());
-
- OUString aModuleUIName;
-
- try
- {
- css::uno::Any a = rModuleManager->getByName( aModuleId );
- css::uno::Sequence< css::beans::PropertyValue > aSeq;
-
- if ( a >>= aSeq )
- {
- for ( sal_Int32 i = 0; i < aSeq.getLength(); ++i )
- {
- if ( aSeq[i].Name == "ooSetupFactoryUIName" )
- {
- aSeq[i].Value >>= aModuleUIName;
- break;
- }
- }
- }
- }
- catch ( css::uno::RuntimeException& )
- {
- throw;
- }
- catch ( css::uno::Exception& )
- {
- }
-
- if ( aModuleUIName.isEmpty() )
- aModuleUIName = GetModuleName( aModuleId );
-
- return aModuleUIName;
-}
-
-inline bool GetMenuItemData(
- const css::uno::Reference< css::container::XIndexAccess >& rItemContainer,
- sal_Int32 nIndex,
- OUString& rCommandURL,
- OUString& rLabel,
- sal_uInt16& rType,
- css::uno::Reference< css::container::XIndexAccess >& rSubMenu )
-{
- try
- {
- css::uno::Sequence< css::beans::PropertyValue > aProp;
- if ( rItemContainer->getByIndex( nIndex ) >>= aProp )
- {
- for ( sal_Int32 i = 0; i < aProp.getLength(); ++i )
- {
- if ( aProp[i].Name == ITEM_DESCRIPTOR_COMMANDURL )
- {
- aProp[i].Value >>= rCommandURL;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_CONTAINER )
- {
- aProp[i].Value >>= rSubMenu;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_LABEL )
- {
- aProp[i].Value >>= rLabel;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_TYPE )
- {
- aProp[i].Value >>= rType;
- }
- }
-
- return true;
- }
- }
- catch ( css::lang::IndexOutOfBoundsException& )
- {
- }
-
- return false;
-}
-
-inline bool GetToolbarItemData(
- const css::uno::Reference< css::container::XIndexAccess >& rItemContainer,
- sal_Int32 nIndex,
- OUString& rCommandURL,
- OUString& rLabel,
- sal_uInt16& rType,
- bool& rIsVisible,
- sal_Int32& rStyle )
-{
- try
- {
- css::uno::Sequence< css::beans::PropertyValue > aProp;
- if ( rItemContainer->getByIndex( nIndex ) >>= aProp )
- {
- for ( sal_Int32 i = 0; i < aProp.getLength(); ++i )
- {
- if ( aProp[i].Name == ITEM_DESCRIPTOR_COMMANDURL )
- {
- aProp[i].Value >>= rCommandURL;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_STYLE )
- {
- aProp[i].Value >>= rStyle;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_LABEL )
- {
- aProp[i].Value >>= rLabel;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_TYPE )
- {
- aProp[i].Value >>= rType;
- }
- else if ( aProp[i].Name == ITEM_DESCRIPTOR_ISVISIBLE )
- {
- aProp[i].Value >>= rIsVisible;
- }
- }
-
- return true;
- }
- }
- catch ( css::lang::IndexOutOfBoundsException& )
- {
- }
-
- return false;
-}
-
-inline css::uno::Sequence< css::beans::PropertyValue >
-ConvertSvxConfigEntry( const SvxConfigEntry* pEntry )
-{
- css::uno::Sequence< css::beans::PropertyValue > aPropSeq( 3 );
-
- aPropSeq[0].Name = ITEM_DESCRIPTOR_COMMANDURL;
- aPropSeq[0].Value <<= pEntry->GetCommand();
-
- aPropSeq[1].Name = ITEM_DESCRIPTOR_TYPE;
- aPropSeq[1].Value <<= css::ui::ItemType::DEFAULT;
-
- // If the name has not been changed, then the label can be stored
- // as an empty string.
- // It will be initialised again later using the command to label map.
- aPropSeq[2].Name = ITEM_DESCRIPTOR_LABEL;
- if ( !pEntry->HasChangedName() && !pEntry->GetCommand().isEmpty() )
- {
- aPropSeq[2].Value <<= OUString();
- }
- else
- {
- aPropSeq[2].Value <<= pEntry->GetName();
- }
-
- return aPropSeq;
-}
-
-inline css::uno::Sequence< css::beans::PropertyValue >
-ConvertToolbarEntry( const SvxConfigEntry* pEntry )
-{
- css::uno::Sequence< css::beans::PropertyValue > aPropSeq( 4 );
-
- aPropSeq[0].Name = ITEM_DESCRIPTOR_COMMANDURL;
- aPropSeq[0].Value <<= pEntry->GetCommand();
-
- aPropSeq[1].Name = ITEM_DESCRIPTOR_TYPE;
- aPropSeq[1].Value <<= css::ui::ItemType::DEFAULT;
-
- // If the name has not been changed, then the label can be stored
- // as an empty string.
- // It will be initialised again later using the command to label map.
- aPropSeq[2].Name = ITEM_DESCRIPTOR_LABEL;
- if ( !pEntry->HasChangedName() && !pEntry->GetCommand().isEmpty() )
- {
- aPropSeq[2].Value <<= OUString();
- }
- else
- {
- aPropSeq[2].Value <<= pEntry->GetName();
- }
-
- aPropSeq[3].Name = ITEM_DESCRIPTOR_ISVISIBLE;
- aPropSeq[3].Value <<= pEntry->IsVisible();
-
- return aPropSeq;
-}
-
-//Was in anonymous namespace in cfg.cxx
-inline bool showKeyConfigTabPage( const css::uno::Reference< css::frame::XFrame >& xFrame )
-{
- if (!xFrame.is())
- {
- return false;
- }
- OUString sModuleId(
- css::frame::ModuleManager::create(
- comphelper::getProcessComponentContext())
- ->identify(xFrame));
- return !sModuleId.isEmpty()
- && sModuleId != "com.sun.star.frame.StartModule";
-}
-
-inline bool EntrySort( SvxConfigEntry* a, SvxConfigEntry* b )
-{
- return a->GetName().compareTo( b->GetName() ) < 0;
-}
-
-inline bool SvxConfigEntryModified( SvxConfigEntry* pEntry )
-{
- SvxEntries* pEntries = pEntry->GetEntries();
- if ( !pEntries )
- return false;
-
- for ( const auto& entry : *pEntries )
- {
- if ( entry->IsModified() || SvxConfigEntryModified( entry ) )
- return true;
- }
- return false;
-}
-
-}
-
#endif // INCLUDED_CUI_SOURCE_INC_CFG_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list