summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-05-29 12:41:16 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-05-31 10:31:17 +0200
commitd6e4c97c8e8ab96ca099dd4f8a3fe35204dea8c1 (patch)
tree205d51c8b8a0656fc24bbb408071ac7683f38d1c /sfx2
parent389491aedd659a3c4b24b9902b6cb54075874d3e (diff)
remove newly unused SfxTabDialog
Change-Id: Iebbfe2ab66ff6e058c90c85de747f549cbc36aa5 Reviewed-on: https://gerrit.libreoffice.org/73156 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/Library_sfx.mk1
-rw-r--r--sfx2/inc/uitest/sfx_uiobject.hxx39
-rw-r--r--sfx2/source/dialog/dinfdlg.cxx2
-rw-r--r--sfx2/source/dialog/tabdlg.cxx952
-rw-r--r--sfx2/source/uitest/sfx_uiobject.cxx87
5 files changed, 3 insertions, 1078 deletions
diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
index d4fb4cf6b972..fe6f24c6dd98 100644
--- a/sfx2/Library_sfx.mk
+++ b/sfx2/Library_sfx.mk
@@ -291,7 +291,6 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\
sfx2/source/statbar/stbitem \
sfx2/source/styles/StyleManager \
sfx2/source/toolbox/tbxitem \
- sfx2/source/uitest/sfx_uiobject \
sfx2/source/view/classificationcontroller \
sfx2/source/view/classificationhelper \
sfx2/source/view/frame \
diff --git a/sfx2/inc/uitest/sfx_uiobject.hxx b/sfx2/inc/uitest/sfx_uiobject.hxx
deleted file mode 100644
index b240a2745aa3..000000000000
--- a/sfx2/inc/uitest/sfx_uiobject.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- 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/.
- */
-
-#include <vcl/uitest/uiobject.hxx>
-#include <memory>
-
-class SfxTabDialog;
-
-class SfxTabDialogUIObject : public WindowUIObject
-{
-private:
-
- VclPtr<SfxTabDialog> mxTabDialog;
-
-public:
-
- SfxTabDialogUIObject(const VclPtr<SfxTabDialog>& xTabDialog);
-
- virtual ~SfxTabDialogUIObject() override;
-
- virtual StringMap get_state() override;
-
- virtual void execute(const OUString& rAction,
- const StringMap& rParameters) override;
-
- static std::unique_ptr<UIObject> create(vcl::Window* pWindow);
-
-protected:
-
- virtual OUString get_name() const override;
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 02afc0af8452..71612ce19235 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -814,7 +814,7 @@ void SfxDocumentPage::ImplUpdateSignatures()
try
{
xD = security::DocumentDigitalSignatures::createDefault(comphelper::getProcessComponentContext());
- xD->setParentWindow(VCLUnoHelper::GetInterface(GetTabDialog()));
+ xD->setParentWindow(GetDialogController()->getDialog()->GetXWindow());
}
catch ( const css::uno::DeploymentException& )
{
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index 79e2ad750ada..f75b78a1a9f7 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -33,7 +33,6 @@
#include <sfx2/bindings.hxx>
#include <sfx2/sfxdlg.hxx>
#include <sfx2/viewsh.hxx>
-#include <uitest/sfx_uiobject.hxx>
#include <unotools/viewoptions.hxx>
#include <vcl/builder.hxx>
#include <vcl/IDialogRenderable.hxx>
@@ -52,7 +51,6 @@ using namespace ::com::sun::star::uno;
struct TabPageImpl
{
bool mbStandard;
- VclPtr<SfxTabDialog> mxDialog;
SfxOkDialogController* mpDialogController;
css::uno::Reference< css::frame::XFrame > mxFrame;
@@ -61,7 +59,6 @@ struct TabPageImpl
struct Data_Impl
{
- sal_uInt16 const nId; // The ID
OString const sId; // The ID
CreateTabPage fnCreatePage; // Pointer to Factory
GetTabPageRanges fnGetRanges; // Pointer to Ranges-Function
@@ -69,22 +66,15 @@ struct Data_Impl
bool bRefresh; // Flag: Page must be re-initialized
// Constructor
- Data_Impl( sal_uInt16 Id, const OString& rId, CreateTabPage fnPage,
+ Data_Impl( const OString& rId, CreateTabPage fnPage,
GetTabPageRanges fnRanges ) :
- nId ( Id ),
sId ( rId ),
fnCreatePage( fnPage ),
fnGetRanges ( fnRanges ),
pTabPage ( nullptr ),
bRefresh ( false )
{
- if ( !fnCreatePage )
- {
- SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
- fnCreatePage = pFact->GetTabPageCreatorFunc( nId );
- fnGetRanges = pFact->GetTabPageRangesFunc( nId );
- }
}
};
@@ -119,25 +109,6 @@ struct TabDlg_Impl
}
};
-
-static Data_Impl* Find( const SfxTabDlgData_Impl& rArr, sal_uInt16 nId, sal_uInt16* pPos = nullptr)
-{
- const sal_uInt16 nCount = rArr.size();
-
- for ( sal_uInt16 i = 0; i < nCount; ++i )
- {
- Data_Impl* pObj = rArr[i];
-
- if ( pObj->nId == nId )
- {
- if ( pPos )
- *pPos = i;
- return pObj;
- }
- }
- return nullptr;
-}
-
static Data_Impl* Find( const SfxTabDlgData_Impl& rArr, const OString& rId, sal_uInt16* pPos = nullptr)
{
const sal_uInt16 nCount = rArr.size();
@@ -320,16 +291,6 @@ void SfxTabPage::ChangesApplied()
{
}
-void SfxTabPage::SetTabDialog(SfxTabDialog* pDialog)
-{
- pImpl->mxDialog = pDialog;
-}
-
-SfxTabDialog* SfxTabPage::GetTabDialog() const
-{
- return pImpl->mxDialog;
-}
-
void SfxTabPage::SetDialogController(SfxOkDialogController* pDialog)
{
pImpl->mpDialogController = pDialog;
@@ -361,918 +322,9 @@ const SfxItemSet* SfxTabPage::GetDialogExampleSet() const
{
if (pImpl->mpDialogController)
return pImpl->mpDialogController->GetExampleSet();
- if (pImpl->mxDialog)
- return pImpl->mxDialog->GetExampleSet();
- return nullptr;
-}
-
-SfxTabDialog::SfxTabDialog
-
-/* [Description]
-
- Constructor, temporary without Frame
-*/
-
-(
- vcl::Window* pParent, // Parent Window
- const OUString& rID, const OUString& rUIXMLDescription, //Dialog Name, Dialog .ui path
- const SfxItemSet* pItemSet // Itemset with the data;
- // can be NULL, when Pages are onDemand
-)
- : TabDialog(pParent, rID, rUIXMLDescription)
- , m_pSet(pItemSet ? new SfxItemSet(*pItemSet) : nullptr)
- , m_nAppPageId(USHRT_MAX)
- , m_bStandardPushed(false)
- , m_pExampleSet(nullptr)
-{
- Init_Impl();
-
- sal_uInt16 nPageCount = m_pTabCtrl->GetPageCount();
- for (sal_uInt16 nPage = 0; nPage < nPageCount; ++nPage)
- {
- sal_uInt16 nPageId = m_pTabCtrl->GetPageId(nPage);
- m_pTabCtrl->SetTabPage(nPageId, nullptr);
- }
-}
-
-SfxTabDialog::~SfxTabDialog()
-{
- disposeOnce();
-}
-
-void SfxTabDialog::dispose()
-{
- SavePosAndId();
-
- for (auto & elem : m_pImpl->aData)
- {
- if ( elem->pTabPage )
- {
- // save settings of all pages (user data)
- elem->pTabPage->FillUserData();
- OUString aPageData( elem->pTabPage->GetUserData() );
- if ( !aPageData.isEmpty() )
- {
- // save settings of all pages (user data)
- OUString sConfigId = OStringToOUString(elem->pTabPage->GetConfigId(),
- RTL_TEXTENCODING_UTF8);
- if (sConfigId.isEmpty())
- {
- SAL_WARN("sfx.dialog", "Tabpage needs to be converted to .ui format");
- sConfigId = OUString::number(elem->nId);
- }
-
- SvtViewOptions aPageOpt(EViewType::TabPage, sConfigId);
- aPageOpt.SetUserItem( USERITEM_NAME, makeAny( aPageData ) );
- }
-
- elem->pTabPage.disposeAndClear();
- }
- delete elem;
- elem = nullptr;
- }
-
- m_pImpl.reset();
- m_pSet.reset();
- m_pOutSet.reset();
- delete m_pExampleSet;
- m_pExampleSet = nullptr;
- m_pRanges.reset();
-
- if (m_bOwnsBaseFmtBtn)
- m_pBaseFmtBtn.disposeAndClear();
- if (m_bOwnsResetBtn)
- m_pResetBtn.disposeAndClear();
- if (m_bOwnsHelpBtn)
- m_pHelpBtn.disposeAndClear();
- if (m_bOwnsCancelBtn)
- m_pCancelBtn.disposeAndClear();
- if (m_bOwnsOKBtn)
- m_pOKBtn.disposeAndClear();
- m_pBox.clear();
- m_pTabCtrl.clear();
- m_pOKBtn.clear();
- m_pUserBtn.clear();
- m_pCancelBtn.clear();
- m_pHelpBtn.clear();
- m_pResetBtn.clear();
- m_pBaseFmtBtn.clear();
- m_pActionArea.clear();
-
- TabDialog::dispose();
-}
-
-void SfxTabDialog::Init_Impl()
-/* [Description]
-
- internal initialization of the dialogue
-*/
-{
- m_pBox = get_content_area();
- assert(m_pBox);
- m_pUIBuilder->get(m_pTabCtrl, "tabcontrol");
-
- m_pImpl.reset( new TabDlg_Impl(m_pTabCtrl->GetPageCount()) );
-
- m_pActionArea = get_action_area();
- assert(m_pActionArea);
-
- m_pOKBtn = m_pUIBuilder->get<PushButton>("ok");
- m_bOwnsOKBtn = m_pOKBtn == nullptr;
- if (m_bOwnsOKBtn)
- m_pOKBtn = VclPtr<OKButton>::Create(m_pActionArea);
-
- m_pCancelBtn = m_pUIBuilder->get<CancelButton>("cancel");
- m_bOwnsCancelBtn = m_pCancelBtn == nullptr;
- if (m_bOwnsCancelBtn)
- m_pCancelBtn = VclPtr<CancelButton>::Create(m_pActionArea);
-
- m_pHelpBtn = m_pUIBuilder->get<HelpButton>("help");
- m_bOwnsHelpBtn = m_pHelpBtn == nullptr;
- if (m_bOwnsHelpBtn)
- m_pHelpBtn = VclPtr<HelpButton>::Create(m_pActionArea);
-
- m_pResetBtn = m_pUIBuilder->get<PushButton>("reset");
- m_bOwnsResetBtn = m_pResetBtn == nullptr;
- if (m_bOwnsResetBtn)
- {
- m_pResetBtn = VclPtr<PushButton>::Create(m_pActionArea.get());
- m_pResetBtn->set_id("reset");
- }
- else
- m_pImpl->bHideResetBtn = !m_pResetBtn->IsVisible();
-
- m_pBaseFmtBtn = m_pUIBuilder->get<PushButton>("standard");
- m_bOwnsBaseFmtBtn = m_pBaseFmtBtn == nullptr;
- if (m_bOwnsBaseFmtBtn)
- {
- m_pBaseFmtBtn = VclPtr<PushButton>::Create(m_pActionArea.get());
- m_pBaseFmtBtn->set_id("standard");
- }
-
- m_pOKBtn->SetClickHdl( LINK( this, SfxTabDialog, OkHdl ) );
- m_pCancelBtn->SetClickHdl( LINK( this, SfxTabDialog, CancelHdl ) );
- m_pResetBtn->SetClickHdl( LINK( this, SfxTabDialog, ResetHdl ) );
- m_pResetBtn->SetText( SfxResId( STR_RESET ) );
- m_pTabCtrl->SetActivatePageHdl(
- LINK( this, SfxTabDialog, ActivatePageHdl ) );
- m_pTabCtrl->SetDeactivatePageHdl(
- LINK( this, SfxTabDialog, DeactivatePageHdl ) );
- m_pActionArea->Show();
- m_pBox->Show();
- m_pTabCtrl->Show();
- m_pOKBtn->Show();
- m_pCancelBtn->Show();
- m_pHelpBtn->Show();
- m_pResetBtn->Show();
- m_pResetBtn->SetHelpId( HID_TABDLG_RESET_BTN );
-
- if ( m_pUserBtn )
- {
- m_pUserBtn->SetClickHdl( LINK( this, SfxTabDialog, UserHdl ) );
- m_pUserBtn->Show();
- }
-
- if ( m_pSet )
- {
- m_pExampleSet = new SfxItemSet( *m_pSet );
- m_pOutSet.reset(new SfxItemSet( *m_pSet->GetPool(), m_pSet->GetRanges() ));
- }
-}
-
-short SfxTabDialog::Execute()
-{
- if ( !m_pTabCtrl->GetPageCount() )
- return RET_CANCEL;
- Start_Impl();
-
- return TabDialog::Execute();
-}
-
-bool SfxTabDialog::StartExecuteAsync( VclAbstractDialog::AsyncContext &rCtx )
-{
- if ( !m_pTabCtrl->GetPageCount() )
- {
- rCtx.mxOwner.disposeAndClear();
- return false;
- }
- Start_Impl();
- return TabDialog::StartExecuteAsync( rCtx );
-}
-
-void SfxTabDialog::Start_Impl()
-{
- assert(m_pImpl->aData.size() == m_pTabCtrl->GetPageCount()
- && "not all pages registered");
- sal_uInt16 nActPage = m_pTabCtrl->GetPageId( 0 );
-
- // load old settings, when exists
- SvtViewOptions aDlgOpt(EViewType::TabDialog, OStringToOUString(GetHelpId(),RTL_TEXTENCODING_UTF8));
- if ( aDlgOpt.Exists() )
- {
- SetWindowState(OUStringToOString(aDlgOpt.GetWindowState(), RTL_TEXTENCODING_ASCII_US));
-
- // initial TabPage from Program/Help/config
- nActPage = m_pTabCtrl->GetPageId(aDlgOpt.GetPageID());
-
- if ( USHRT_MAX != m_nAppPageId )
- nActPage = m_nAppPageId;
-
- if ( TAB_PAGE_NOTFOUND == m_pTabCtrl->GetPagePos( nActPage ) )
- nActPage = m_pTabCtrl->GetPageId( 0 );
- }
- else if ( USHRT_MAX != m_nAppPageId && TAB_PAGE_NOTFOUND != m_pTabCtrl->GetPagePos( m_nAppPageId ) )
- nActPage = m_nAppPageId;
-
- m_pTabCtrl->SetCurPageId( nActPage );
- ActivatePageHdl( m_pTabCtrl );
-}
-
-/*
- Adds a page to the dialog. The Name must correspond to a entry in the
- TabControl in the dialog .ui
-*/
-sal_uInt16 SfxTabDialog::AddTabPage
-(
- const OString &rName, // Page ID
- CreateTabPage pCreateFunc // Pointer to the Factory Method
-)
-{
- sal_uInt16 nId = m_pTabCtrl->GetPageId(rName);
- m_pImpl->aData.push_back(new Data_Impl(nId, rName, pCreateFunc, nullptr));
- return nId;
-}
-
-void SfxTabDialog::AddTabPage
-
-/* [Description]
-
- Add a page to the dialog. The Rider text is passed on, the page has no
- counterpart in the TabControl in the resource of the dialogue.
-*/
-
-(
- sal_uInt16 nId,
- const OUString& rRiderText,
- CreateTabPage pCreateFunc,
- sal_uInt16 nPos
-)
-{
- DBG_ASSERT( TAB_PAGE_NOTFOUND == m_pTabCtrl->GetPagePos( nId ),
- "Double Page-Ids in the Tabpage" );
- m_pTabCtrl->InsertPage( nId, rRiderText, nPos );
- m_pImpl->aData.push_back( new Data_Impl(nId, "", pCreateFunc, nullptr ) );
-}
-
-void SfxTabDialog::PageCreated
-
-/* [Description]
-
- Default implementation of the virtual method. This is called immediately
- after creating a page. Here the dialogue can call the TabPage Method
- directly.
-*/
-
-(
- sal_uInt16, // Id of the created page
- SfxTabPage& // Reference to the created page
-)
-{
-}
-
-
-SfxItemSet* SfxTabDialog::GetInputSetImpl()
-
-/* [Description]
-
- Derived classes may create new storage for the InputSet. This has to be
- released in the Destructor. To do this, this method must be called.
-*/
-
-{
- return m_pSet.get();
-}
-
-
-SfxTabPage* SfxTabDialog::GetTabPage( sal_uInt16 nPageId ) const
-
-/* [Description]
-
- Return TabPage with the specified Id.
-*/
-
-{
- sal_uInt16 nPos = 0;
- Data_Impl* pDataObject = Find( m_pImpl->aData, nPageId, &nPos );
-
- if ( pDataObject )
- return pDataObject->pTabPage;
return nullptr;
}
-void SfxTabDialog::SavePosAndId()
-{
- // save settings (screen position and current page)
- SvtViewOptions aDlgOpt(EViewType::TabDialog, OStringToOUString(GetHelpId(),RTL_TEXTENCODING_UTF8));
- aDlgOpt.SetWindowState(OStringToOUString(GetWindowState(WindowStateMask::Pos),RTL_TEXTENCODING_ASCII_US));
- // to-do replace with name of page when all pages are converted to .ui
- aDlgOpt.SetPageID(m_pTabCtrl->GetPageName(m_pTabCtrl->GetCurPageId()));
-}
-
-
-short SfxTabDialog::Ok()
-
-/* [Description]
-
- Ok handler for the Dialogue.
-
- Dialog's current location and current page are saved for the next time
- the dialog is shown.
-
- The OutputSet is created and for each page this or the special OutputSet
- is set by calling the method <SfxTabPage::FillItemSet(SfxItemSet &)>, to
- insert the entered data by the user into the set.
-
- [Return value]
-
- RET_OK: if at least one page has returned from FillItemSet,
- otherwise RET_CANCEL.
-*/
-{
- SavePosAndId(); //See fdo#38828 "Apply" resetting window position
-
- if ( !m_pOutSet )
- {
- if ( m_pExampleSet )
- m_pOutSet.reset(new SfxItemSet( *m_pExampleSet ));
- else if ( m_pSet )
- m_pOutSet = m_pSet->Clone( false ); // without Items
- }
- bool bModified = false;
-
- for (auto const& elem : m_pImpl->aData)
- {
- SfxTabPage* pTabPage = elem->pTabPage;
-
- if ( pTabPage )
- {
- if ( m_pSet && !pTabPage->HasExchangeSupport() )
- {
- SfxItemSet aTmp( *m_pSet->GetPool(), m_pSet->GetRanges() );
-
- if ( pTabPage->FillItemSet( &aTmp ) )
- {
- bModified = true;
- if (m_pExampleSet)
- m_pExampleSet->Put( aTmp );
- m_pOutSet->Put( aTmp );
- }
- }
- }
- }
-
- if ( m_pOutSet && m_pOutSet->Count() > 0 )
- bModified = true;
-
- if (m_bStandardPushed)
- bModified = true;
- return bModified ? RET_OK : RET_CANCEL;
-}
-
-IMPL_LINK_NOARG(SfxTabDialog, CancelHdl, Button*, void)
-{
- EndDialog( RET_USER_CANCEL );
-}
-
-
-SfxItemSet* SfxTabDialog::CreateInputItemSet( sal_uInt16 )
-
-/* [Description]
-
- Default implementation of the virtual Method.
- This is called when pages create their sets onDemand.
-*/
-
-{
- SAL_WARN( "sfx.dialog", "CreateInputItemSet not implemented" );
- return new SfxAllItemSet( SfxGetpApp()->GetPool() );
-}
-
-
-IMPL_LINK_NOARG(SfxTabDialog, OkHdl, Button*, void)
-
-/* [Description]
-
- Handler of the Ok-Buttons
- This calls the current page <SfxTabPage::DeactivatePage(SfxItemSet *)>.
- Returns <DeactivateRC::LeavePage>, <SfxTabDialog::Ok()> is called
- and the Dialog is ended.
-*/
-
-{
- if (PrepareLeaveCurrentPage())
- {
- if ( m_pImpl->bModal )
- EndDialog( Ok() );
- else
- {
- Ok();
- Close();
- }
- }
-}
-
-bool SfxTabDialog::PrepareLeaveCurrentPage()
-{
- sal_uInt16 const nId = m_pTabCtrl->GetCurPageId();
- SfxTabPage* pPage = dynamic_cast<SfxTabPage*> (m_pTabCtrl->GetTabPage( nId ));
- bool bEnd = !pPage;
-
- if ( pPage )
- {
- DeactivateRC nRet = DeactivateRC::LeavePage;
- if ( m_pSet )
- {
- SfxItemSet aTmp( *m_pSet->GetPool(), m_pSet->GetRanges() );
-
- if ( pPage->HasExchangeSupport() )
- nRet = pPage->DeactivatePage( &aTmp );
- else
- nRet = pPage->DeactivatePage( nullptr );
-
- if ( ( DeactivateRC::LeavePage & nRet ) == DeactivateRC::LeavePage
- && aTmp.Count() )
- {
- m_pExampleSet->Put( aTmp );
- m_pOutSet->Put( aTmp );
- }
- }
- else
- nRet = pPage->DeactivatePage( nullptr );
- bEnd = nRet != DeactivateRC::KeepPage;
- }
-
- return bEnd;
-}
-
-
-IMPL_LINK_NOARG(SfxTabDialog, UserHdl, Button*, void)
-
-/* [Description]
-
- Handler of the User-Buttons
- This calls the current page <SfxTabPage::DeactivatePage(SfxItemSet *)>.
- returns this <DeactivateRC::LeavePage> and <SfxTabDialog::Ok()> is called.
- Then the Dialog is ended with the Return value <SfxTabDialog::Ok()>
-*/
-
-{
- if ( PrepareLeaveCurrentPage () )
- {
- short nRet = Ok();
-
- if ( RET_OK == nRet )
- nRet = RET_USER;
- else
- nRet = RET_USER_CANCEL;
- EndDialog( nRet );
- }
-}
-
-
-IMPL_LINK_NOARG(SfxTabDialog, ResetHdl, Button*, void)
-
-/* [Description]
-
- Handler behind the reset button.
- The Current Page is new initialized with their initial data, all the
- settings that the user has made on this page are repealed.
-*/
-
-{
- const sal_uInt16 nId = m_pTabCtrl->GetCurPageId();
- Data_Impl* pDataObject = Find( m_pImpl->aData, nId );
- DBG_ASSERT( pDataObject, "Id not known" );
-
- pDataObject->pTabPage->Reset( m_pSet.get() );
- // Also reset relevant items of ExampleSet and OutSet to initial state
- if (!pDataObject->fnGetRanges)
- return;
-
- if (!m_pExampleSet)
- m_pExampleSet = new SfxItemSet(*m_pSet);
-
- const SfxItemPool* pPool = m_pSet->GetPool();
- const sal_uInt16* pTmpRanges = (pDataObject->fnGetRanges)();
-
- while (*pTmpRanges)
- {
- const sal_uInt16* pU = pTmpRanges + 1;
-
- // Correct Range with multiple values
- sal_uInt16 nTmp = *pTmpRanges, nTmpEnd = *pU;
- DBG_ASSERT(nTmp <= nTmpEnd, "Range is sorted the wrong way");
-
- if (nTmp > nTmpEnd)
- {
- // If really sorted wrongly, then set new
- std::swap(nTmp, nTmpEnd);
- }
-
- while (nTmp && nTmp <= nTmpEnd)
- {
- // Iterate over the Range and set the Items
- sal_uInt16 nWh = pPool->GetWhich(nTmp);
- const SfxPoolItem* pItem;
- if (SfxItemState::SET == m_pSet->GetItemState(nWh, false, &pItem))
- {
- m_pExampleSet->Put(*pItem);
- m_pOutSet->Put(*pItem);
- }
- else
- {
- m_pExampleSet->ClearItem(nWh);
- m_pOutSet->ClearItem(nWh);
- }
- nTmp++;
- }
- // Go to the next pair
- pTmpRanges += 2;
- }
-}
-
-
-IMPL_LINK_NOARG(SfxTabDialog, BaseFmtHdl, Button*, void)
-
-/* [Description]
-
- Handler behind the Standard-Button.
- This button is available when editing style sheets. All the set attributes
- in the edited stylesheet are deleted.
-*/
-
-{
- m_bStandardPushed = true;
-
- const sal_uInt16 nId = m_pTabCtrl->GetCurPageId();
- Data_Impl* pDataObject = Find( m_pImpl->aData, nId );
- DBG_ASSERT( pDataObject, "Id not known" );
-
- if ( !pDataObject->fnGetRanges )
- return;
-
- if ( !m_pExampleSet )
- m_pExampleSet = new SfxItemSet( *m_pSet );
-
- const SfxItemPool* pPool = m_pSet->GetPool();
- const sal_uInt16* pTmpRanges = (pDataObject->fnGetRanges)();
- SfxItemSet aTmpSet( *m_pExampleSet );
-
- while ( *pTmpRanges )
- {
- const sal_uInt16* pU = pTmpRanges + 1;
-
- // Correct Range with multiple values
- sal_uInt16 nTmp = *pTmpRanges, nTmpEnd = *pU;
- DBG_ASSERT( nTmp <= nTmpEnd, "Range is sorted the wrong way" );
-
- if ( nTmp > nTmpEnd )
- {
- // If really sorted wrongly, then set new
- std::swap(nTmp, nTmpEnd);
- }
-
- while ( nTmp && nTmp <= nTmpEnd ) // guard against overflow
- {
- // Iterate over the Range and set the Items
- sal_uInt16 nWh = pPool->GetWhich( nTmp );
- m_pExampleSet->ClearItem( nWh );
- aTmpSet.ClearItem( nWh );
- // At the Outset of InvalidateItem,
- // so that the change takes effect
- m_pOutSet->InvalidateItem( nWh );
- nTmp++;
- }
- // Go to the next pair
- pTmpRanges += 2;
- }
- // Set all Items as new -> the call the current Page Reset()
- DBG_ASSERT( pDataObject->pTabPage, "the Page is gone" );
- pDataObject->pTabPage->Reset( &aTmpSet );
- pDataObject->pTabPage->pImpl->mbStandard = true;
-}
-
-
-IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl, void )
-
-/* [Description]
-
- Handler that is called by StarView for switching to a different page.
- If the page not exist yet then it is created and the virtual Method
- <SfxTabDialog::PageCreated( sal_uInt16, SfxTabPage &)> is called. If the page
- exist, then the if possible the <SfxTabPage::Reset(const SfxItemSet &)> or
- <SfxTabPage::ActivatePage(const SfxItemSet &)> is called.
-*/
-
-{
- sal_uInt16 nId = pTabCtrl->GetCurPageId();
-
- DBG_ASSERT( m_pImpl->aData.size(), "no Pages registered" );
-
- // Tab Page already there?
- VclPtr<SfxTabPage> pTabPage = dynamic_cast<SfxTabPage*> (pTabCtrl->GetTabPage( nId ));
- Data_Impl* pDataObject = Find( m_pImpl->aData, nId );
-
- // fallback to 1st page when requested one does not exist
- if(!pDataObject && pTabCtrl->GetPageCount())
- {
- pTabCtrl->SetCurPageId(pTabCtrl->GetPageId(0));
- nId = pTabCtrl->GetCurPageId();
- pTabPage = dynamic_cast< SfxTabPage* >(pTabCtrl->GetTabPage(nId));
- pDataObject = Find(m_pImpl->aData, nId);
- }
-
- if (!pDataObject)
- {
- SAL_WARN("sfx.dialog", "Tab Page ID not known, this is pretty serious and needs investigation");
- return;
- }
-
- // Create TabPage if possible:
- if ( !pTabPage )
- {
- if ( m_pSet )
- pTabPage = (pDataObject->fnCreatePage)(static_cast<vcl::Window*>(pTabCtrl), m_pSet.get());
- else
- pTabPage = (pDataObject->fnCreatePage)(pTabCtrl, CreateInputItemSet(nId));
- DBG_ASSERT( nullptr == pDataObject->pTabPage, "create TabPage more than once" );
- pDataObject->pTabPage = pTabPage;
- pTabPage->SetTabDialog(this);
-
- OUString sConfigId = OStringToOUString(pTabPage->GetConfigId(), RTL_TEXTENCODING_UTF8);
- if (sConfigId.isEmpty())
- {
- SAL_WARN("sfx.dialog", "Tabpage needs to be converted to .ui format");
- sConfigId = OUString::number(pDataObject->nId);
- }
- SvtViewOptions aPageOpt(EViewType::TabPage, sConfigId);
- OUString sUserData;
- Any aUserItem = aPageOpt.GetUserItem( USERITEM_NAME );
- OUString aTemp;
- if ( aUserItem >>= aTemp )
- sUserData = aTemp;
- pTabPage->SetUserData( sUserData );
- Size aSiz = pTabPage->GetSizePixel();
-
- Size aCtrlSiz = pTabCtrl->GetTabPageSizePixel();
- // Only set Size on TabControl when < as TabPage
- if ( aCtrlSiz.Width() < aSiz.Width() ||
- aCtrlSiz.Height() < aSiz.Height() )
- {
- pTabCtrl->SetTabPageSizePixel( aSiz );
- }
-
- PageCreated( nId, *pTabPage );
-
- pTabPage->Reset( m_pSet.get() );
-
- pTabCtrl->SetTabPage( nId, pTabPage );
- }
- else if ( pDataObject->bRefresh )
- pTabPage->Reset( m_pSet.get() );
- pDataObject->bRefresh = false;
-
- if ( m_pExampleSet )
- pTabPage->ActivatePage( *m_pExampleSet );
-
- if ( pTabPage->IsReadOnly() || m_pImpl->bHideResetBtn )
- m_pResetBtn->Hide();
- else
- m_pResetBtn->Show();
-}
-
-
-IMPL_LINK( SfxTabDialog, DeactivatePageHdl, TabControl *, pTabCtrl, bool )
-
-/* [Description]
-
- Handler that is called by StarView before leaving a page.
-
- [Cross-reference]
-
- <SfxTabPage::DeactivatePage(SfxItemSet *)>
-*/
-
-{
- sal_uInt16 nId = pTabCtrl->GetCurPageId();
- SfxTabPage *pPage = dynamic_cast<SfxTabPage*> (pTabCtrl->GetTabPage( nId ));
- DBG_ASSERT( pPage, "no active Page" );
- if (!pPage)
- return false;
-#ifdef DBG_UTIL
- Data_Impl* pDataObject = Find( m_pImpl->aData, pTabCtrl->GetCurPageId() );
- DBG_ASSERT( pDataObject, "no Data structure for current page" );
-#endif
-
- DeactivateRC nRet = DeactivateRC::LeavePage;
-
- if ( !m_pExampleSet && pPage->HasExchangeSupport() && m_pSet )
- m_pExampleSet = new SfxItemSet( *m_pSet->GetPool(), m_pSet->GetRanges() );
-
- if ( m_pSet )
- {
- SfxItemSet aTmp( *m_pSet->GetPool(), m_pSet->GetRanges() );
-
- if ( pPage->HasExchangeSupport() )
- nRet = pPage->DeactivatePage( &aTmp );
- else
- nRet = pPage->DeactivatePage( nullptr );
- if ( ( DeactivateRC::LeavePage & nRet ) == DeactivateRC::LeavePage &&
- aTmp.Count() && m_pExampleSet)
- {
- m_pExampleSet->Put( aTmp );
- m_pOutSet->Put( aTmp );
- }
- }
- else
- {
- if ( pPage->HasExchangeSupport() ) //!!!
- {
- if ( !m_pExampleSet )
- {
- SfxItemPool* pPool = pPage->GetItemSet().GetPool();
- m_pExampleSet =
- new SfxItemSet( *pPool, GetInputRanges( *pPool ) );
- }
- nRet = pPage->DeactivatePage( m_pExampleSet );
- }
- else
- nRet = pPage->DeactivatePage( nullptr );
- }
-
- if ( nRet & DeactivateRC::RefreshSet )
- {
- // Flag all Pages as to be initialized as new
-
- for (auto const& elem : m_pImpl->aData)
- {
- elem->bRefresh = ( elem->pTabPage.get() != pPage ); // Do not refresh own Page anymore
- }
- }
- return static_cast<bool>(nRet & DeactivateRC::LeavePage);
-}
-
-
-void SfxTabDialog::ShowPage( sal_uInt16 nId )
-
-/* [Description]
-
- The TabPage is activated with the specified Id.
-*/
-
-{
- m_pTabCtrl->SetCurPageId( nId );
- ActivatePageHdl( m_pTabCtrl );
-}
-
-OString SfxTabDialog::GetScreenshotId() const
-{
- SfxTabPage *pActiveTabPage = GetCurTabPage();
- OString aScreenshotId = GetHelpId();
-
- if ( pActiveTabPage )
- {
- vcl::Window* pToplevelBox = pActiveTabPage->GetWindow( GetWindowType::FirstChild );
-
- if ( pToplevelBox )
- aScreenshotId = pToplevelBox->GetHelpId();
- }
-
- return aScreenshotId;
-}
-
-const sal_uInt16* SfxTabDialog::GetInputRanges( const SfxItemPool& rPool )
-
-/* [Description]
-
- Makes the set over the range of all pages of the dialogue. Pages have the
- static method for querying their range in AddTabPage, ie deliver their
- sets onDemand.
-
- [Return value]
-
- Pointer to a null-terminated array of sal_uInt16. This array belongs to the
- dialog and is deleted when the dialogue is destroy.
-
- [Cross-reference]
-
- <SfxTabDialog::AddTabPage(sal_uInt16, CreateTabPage, GetTabPageRanges, bool)>
- <SfxTabDialog::AddTabPage(sal_uInt16, const String &, CreateTabPage, GetTabPageRanges, bool, sal_uInt16)>
- <SfxTabDialog::AddTabPage(sal_uInt16, const Bitmap &, CreateTabPage, GetTabPageRanges, bool, sal_uInt16)>
-*/
-
-{
- if ( m_pSet )
- {
- SAL_WARN( "sfx.dialog", "Set already exists!" );
- return m_pSet->GetRanges();
- }
-
- if ( m_pRanges )
- return m_pRanges.get();
- std::vector<sal_uInt16> aUS;
-
- for (auto const& elem : m_pImpl->aData)
- {
-
- if ( elem->fnGetRanges )
- {
- const sal_uInt16* pTmpRanges = (elem->fnGetRanges)();
- const sal_uInt16* pIter = pTmpRanges;
-
- sal_uInt16 nLen;
- for( nLen = 0; *pIter; ++nLen, ++pIter )
- ;
- aUS.insert( aUS.end(), pTmpRanges, pTmpRanges + nLen );
- }
- }
-
- //! Remove duplicated Ids?
- {
- for (auto & elem : aUS)
- elem = rPool.GetWhich(elem);
- }
-
- // sort
- if ( aUS.size() > 1 )
- {
- std::sort( aUS.begin(), aUS.end() );
- }
-
- m_pRanges.reset(new sal_uInt16[aUS.size() + 1]);
- std::copy( aUS.begin(), aUS.end(), m_pRanges.get() );
- m_pRanges[aUS.size()] = 0;
- return m_pRanges.get();
-}
-
-void SfxTabDialog::SetPageName(sal_uInt16 nPageId, const OString& rName) const
-{
- m_pTabCtrl->SetPageName(nPageId, rName);
-}
-
-FactoryFunction SfxTabDialog::GetUITestFactory() const
-{
- return SfxTabDialogUIObject::create;
-}
-
-std::vector<OString> SfxTabDialog::getAllPageUIXMLDescriptions() const
-{
- std::vector<OString> aRetval;
-
- for (auto const& elem : m_pImpl->aData)
- {
- SfxTabPage* pCandidate = GetTabPage(elem->nId);
-
- if (!pCandidate)
- {
- // force SfxTabPage creation
- const_cast<SfxTabDialog*>(this)->ShowPage(elem->nId);
- pCandidate = GetTabPage(elem->nId);
- }
-
- if (pCandidate)
- {
- // use UIXMLDescription (without '.ui', with '/')
- aRetval.push_back(pCandidate->getUIFile());
- }
- }
-
- return aRetval;
-}
-
-bool SfxTabDialog::selectPageByUIXMLDescription(const OString& rUIXMLDescription)
-{
- for (auto const& elem : m_pImpl->aData)
- {
- SfxTabPage* pCandidate = elem->pTabPage;
-
- if (!pCandidate)
- {
- // force SfxTabPage creation
- ShowPage(elem->nId);
- pCandidate = GetTabPage(elem->nId);
- }
-
- if (pCandidate && pCandidate->getUIFile() == rUIXMLDescription)
- {
- ShowPage(elem->nId);
- return true;
- }
- }
-
- return false;
-}
-
SfxTabDialogController::SfxTabDialogController
(
weld::Window* pParent, // Parent Window
@@ -1817,7 +869,7 @@ void SfxTabDialogController::AddTabPage(const OString &rName /* Page ID */,
CreateTabPage pCreateFunc /* Pointer to the Factory Method */,
GetTabPageRanges pRangesFunc /* Pointer to the Method for querying Ranges onDemand */)
{
- m_pImpl->aData.push_back(new Data_Impl(m_pImpl->aData.size(), rName, pCreateFunc, pRangesFunc));
+ m_pImpl->aData.push_back(new Data_Impl(rName, pCreateFunc, pRangesFunc));
}
void SfxTabDialogController::AddTabPage(const OString &rName /* Page ID */,
diff --git a/sfx2/source/uitest/sfx_uiobject.cxx b/sfx2/source/uitest/sfx_uiobject.cxx
deleted file mode 100644
index 5a56b4168e18..000000000000
--- a/sfx2/source/uitest/sfx_uiobject.cxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- 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/.
- */
-
-#include <memory>
-#include <uitest/sfx_uiobject.hxx>
-
-#include <sfx2/tabdlg.hxx>
-
-SfxTabDialogUIObject::SfxTabDialogUIObject(const VclPtr<SfxTabDialog>& xTabDialog):
- WindowUIObject(xTabDialog),
- mxTabDialog(xTabDialog)
-{
-}
-
-SfxTabDialogUIObject::~SfxTabDialogUIObject()
-{
-}
-
-StringMap SfxTabDialogUIObject::get_state()
-{
- StringMap aMap = WindowUIObject::get_state();
- sal_uInt16 nPageId = mxTabDialog->GetCurPageId();
- std::vector<sal_uInt16> aPageIds = mxTabDialog->m_pTabCtrl->GetPageIDs();
- OUString aStrIds;
- OUString aStrNames;
- for (auto const& pageId : aPageIds)
- {
- aStrIds = aStrIds + OUString::number(pageId) + ";";
- aStrNames = aStrNames + mxTabDialog->GetPageText(pageId) + ";";
- }
-
- aMap["PageIds"] = aStrIds;
- aMap["PageNames"] = aStrNames;
- aMap["CurrentPageID"] = OUString::number(nPageId);
- aMap["CurrentPageText"] = mxTabDialog->GetPageText(nPageId);
- return aMap;
-}
-
-void SfxTabDialogUIObject::execute(const OUString& rAction,
- const StringMap& rParameters)
-{
- if (rAction != "SELECT")
- return;
-
- if (rParameters.find("POS") != rParameters.end())
- {
- auto itr = rParameters.find("POS");
- sal_uInt32 nPos = itr->second.toUInt32();
- std::vector<sal_uInt16> aIds = mxTabDialog->m_pTabCtrl->GetPageIDs();
- sal_uInt16 nPageId = aIds[nPos];
- mxTabDialog->ShowPage(nPageId);
- }
- else if (rParameters.find("NAME") != rParameters.end())
- {
- auto itr = rParameters.find("NAME");
- OUString aName = itr->second;
- std::vector<sal_uInt16> aIds = mxTabDialog->m_pTabCtrl->GetPageIDs();
- for (auto const& elem : aIds)
- {
- if (mxTabDialog->GetPageText(elem) == aName)
- {
- mxTabDialog->ShowPage(elem);
- break;
- }
- }
- }
-}
-
-std::unique_ptr<UIObject> SfxTabDialogUIObject::create(vcl::Window* pWindow)
-{
- SfxTabDialog* pDialog = dynamic_cast<SfxTabDialog*>(pWindow);
- assert(pDialog);
- return std::unique_ptr<UIObject>(new SfxTabDialogUIObject(pDialog));
-}
-
-OUString SfxTabDialogUIObject::get_name() const
-{
- return OUString("SfxTabDialogUIObject");
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */