weld SwMailMergeWizard
Change-Id: I03a7fd1f7676792387155db986d710a001887c8d Reviewed-on: https://gerrit.libreoffice.org/77977 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
@@ -80,14 +80,6 @@ CreationWizard::CreationWizard(weld::Window* pParent, const uno::Reference<frame
|
||||
m_xAssistant->set_current_page(0);
|
||||
}
|
||||
|
||||
short CreationWizard::run()
|
||||
{
|
||||
int nRet = vcl::RoadmapWizardMachine::run();
|
||||
if (nRet == static_cast<int>(WizardButtonFlags::FINISH))
|
||||
return ui::dialogs::ExecutableDialogResults::OK;
|
||||
return ui::dialogs::ExecutableDialogResults::CANCEL;
|
||||
}
|
||||
|
||||
CreationWizard::~CreationWizard() = default;
|
||||
|
||||
VclPtr<TabPage> CreationWizard::createPage(WizardState nState)
|
||||
|
||||
@@ -50,8 +50,6 @@ public:
|
||||
virtual void setInvalidPage(TabPage * pTabPage) override;
|
||||
virtual void setValidPage(TabPage * pTabPage) override;
|
||||
|
||||
virtual short run() override;
|
||||
|
||||
protected:
|
||||
virtual bool leaveState( WizardState _nState ) override;
|
||||
virtual WizardState determineNextState(WizardState nCurrentState) const override;
|
||||
|
||||
@@ -174,14 +174,6 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(weld::Window* _pParent
|
||||
m_xAssistant->set_current_page(0);
|
||||
}
|
||||
|
||||
short ODbTypeWizDialogSetup::run()
|
||||
{
|
||||
int nRet = vcl::RoadmapWizardMachine::run();
|
||||
if (nRet == static_cast<int>(WizardButtonFlags::FINISH))
|
||||
return ui::dialogs::ExecutableDialogResults::OK;
|
||||
return ui::dialogs::ExecutableDialogResults::CANCEL;
|
||||
}
|
||||
|
||||
void ODbTypeWizDialogSetup::declareAuthDepPath( const OUString& _sURL, PathId _nPathId, const vcl::RoadmapWizardTypes::WizardPath& _rPaths)
|
||||
{
|
||||
bool bHasAuthentication = DataSourceMetaData::getAuthentication( _sURL ) != AuthNone;
|
||||
|
||||
@@ -118,7 +118,6 @@ public:
|
||||
*/
|
||||
bool IsTableWizardToBeStarted() const;
|
||||
|
||||
virtual short run() override;
|
||||
private:
|
||||
/// to override to create new pages
|
||||
virtual VclPtr<TabPage> createPage(WizardState _nState) override;
|
||||
|
||||
@@ -344,11 +344,6 @@ namespace vcl
|
||||
*/
|
||||
virtual OUString getStateDisplayName( WizardState _nState ) const;
|
||||
|
||||
/** asks for a new label of the wizard page
|
||||
|
||||
*/
|
||||
void updateRoadmapItemLabel( WizardState _nState );
|
||||
|
||||
private:
|
||||
DECL_DLLPRIVATE_LINK( OnRoadmapItemSelected, const OString&, bool );
|
||||
|
||||
|
||||
@@ -38,27 +38,27 @@
|
||||
using namespace svt;
|
||||
using namespace ::com::sun::star;
|
||||
|
||||
SwMailMergeWizard::SwMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem> const & rItem) :
|
||||
RoadmapWizard(&rView.GetViewFrame()->GetWindow()),
|
||||
m_pSwView(&rView),
|
||||
m_bDocumentLoad( false ),
|
||||
m_xConfigItem(rItem),
|
||||
m_sStarting( SwResId( ST_STARTING )),
|
||||
m_sDocumentType( SwResId( ST_DOCUMENTTYPE )),
|
||||
m_sAddressBlock( SwResId( ST_ADDRESSBLOCK )),
|
||||
m_sAddressList( SwResId( ST_ADDRESSLIST )),
|
||||
m_sGreetingsLine( SwResId( ST_GREETINGSLINE )),
|
||||
m_sLayout( SwResId( ST_LAYOUT )),
|
||||
m_nRestartPage( MM_DOCUMENTSELECTPAGE )
|
||||
SwMailMergeWizard::SwMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeConfigItem> const & rItem)
|
||||
: RoadmapWizardMachine(rView.GetFrameWeld())
|
||||
, m_pSwView(&rView)
|
||||
, m_bDocumentLoad(false)
|
||||
, m_xConfigItem(rItem)
|
||||
, m_sStarting(SwResId(ST_STARTING))
|
||||
, m_sDocumentType(SwResId(ST_DOCUMENTTYPE))
|
||||
, m_sAddressBlock(SwResId(ST_ADDRESSBLOCK))
|
||||
, m_sAddressList(SwResId(ST_ADDRESSLIST))
|
||||
, m_sGreetingsLine(SwResId(ST_GREETINGSLINE))
|
||||
, m_sLayout(SwResId(ST_LAYOUT))
|
||||
, m_nRestartPage(MM_DOCUMENTSELECTPAGE)
|
||||
{
|
||||
defaultButton(WizardButtonFlags::NEXT);
|
||||
enableButtons(WizardButtonFlags::FINISH, false);
|
||||
|
||||
setTitleBase(SwResId( ST_MMWTITLE ) );
|
||||
setTitleBase(SwResId(ST_MMWTITLE));
|
||||
|
||||
m_pFinish->SetText(SwResId( ST_FINISH ));
|
||||
m_pNextPage->SetHelpId(HID_MM_NEXT_PAGE);
|
||||
m_pPrevPage->SetHelpId(HID_MM_PREV_PAGE);
|
||||
m_xFinish->set_label(SwResId( ST_FINISH ));
|
||||
m_xNextPage->set_help_id(HID_MM_NEXT_PAGE);
|
||||
m_xPrevPage->set_help_id(HID_MM_PREV_PAGE);
|
||||
|
||||
//#i51949# no output type page visible if e-Mail is not supported
|
||||
if (m_xConfigItem->IsMailAvailable())
|
||||
@@ -80,6 +80,7 @@ SwMailMergeWizard::SwMailMergeWizard(SwView& rView, std::shared_ptr<SwMailMergeC
|
||||
);
|
||||
|
||||
ActivatePage();
|
||||
m_xAssistant->set_current_page(0);
|
||||
UpdateRoadmap();
|
||||
}
|
||||
|
||||
@@ -89,11 +90,16 @@ SwMailMergeWizard::~SwMailMergeWizard()
|
||||
|
||||
VclPtr<TabPage> SwMailMergeWizard::createPage(WizardState _nState)
|
||||
{
|
||||
OString sIdent(OString::number(_nState));
|
||||
weld::Container* pPageContainer = m_xAssistant->append_page(sIdent);
|
||||
// TODO eventually pass DialogController as distinct argument instead of bundling into TabPageParent
|
||||
TabPageParent aParent(pPageContainer, this);
|
||||
|
||||
VclPtr<vcl::OWizardPage> pRet;
|
||||
switch(_nState)
|
||||
{
|
||||
case MM_DOCUMENTSELECTPAGE :
|
||||
pRet = VclPtr<SwMailMergeDocSelectPage>::Create(this, TabPageParent(this));
|
||||
pRet = VclPtr<SwMailMergeDocSelectPage>::Create(this, aParent);
|
||||
|
||||
/* tdf#52986 Set help ID using SetRoadmapHelpId for all pages
|
||||
so that when by default the focus is on the left side pane of
|
||||
@@ -102,29 +108,33 @@ VclPtr<TabPage> SwMailMergeWizard::createPage(WizardState _nState)
|
||||
SetRoadmapHelpId("modules/swriter/ui/mmselectpage/MMSelectPage");
|
||||
break;
|
||||
case MM_OUTPUTTYPETPAGE :
|
||||
pRet = VclPtr<SwMailMergeOutputTypePage>::Create(this, TabPageParent(this));
|
||||
pRet = VclPtr<SwMailMergeOutputTypePage>::Create(this, aParent);
|
||||
SetRoadmapHelpId("modules/swriter/ui/mmoutputtypepage/MMOutputTypePage");
|
||||
break;
|
||||
case MM_ADDRESSBLOCKPAGE :
|
||||
pRet = VclPtr<SwMailMergeAddressBlockPage>::Create(this, TabPageParent(this));
|
||||
pRet = VclPtr<SwMailMergeAddressBlockPage>::Create(this, aParent);
|
||||
SetRoadmapHelpId("modules/swriter/ui/mmaddressblockpage/MMAddressBlockPage");
|
||||
break;
|
||||
case MM_GREETINGSPAGE :
|
||||
pRet = VclPtr<SwMailMergeGreetingsPage>::Create(this, TabPageParent(this));
|
||||
pRet = VclPtr<SwMailMergeGreetingsPage>::Create(this, aParent);
|
||||
SetRoadmapHelpId("modules/swriter/ui/mmsalutationpage/MMSalutationPage");
|
||||
break;
|
||||
case MM_LAYOUTPAGE :
|
||||
pRet = VclPtr<SwMailMergeLayoutPage>::Create(this, TabPageParent(this));
|
||||
pRet = VclPtr<SwMailMergeLayoutPage>::Create(this, aParent);
|
||||
SetRoadmapHelpId("modules/swriter/ui/mmlayoutpage/MMLayoutPage");
|
||||
break;
|
||||
}
|
||||
|
||||
m_xAssistant->set_page_title(sIdent, getStateDisplayName(_nState));
|
||||
|
||||
|
||||
OSL_ENSURE(pRet, "no page created in ::createPage");
|
||||
return pRet;
|
||||
}
|
||||
|
||||
void SwMailMergeWizard::enterState( WizardState _nState )
|
||||
{
|
||||
::vcl::RoadmapWizard::enterState( _nState );
|
||||
::vcl::RoadmapWizardMachine::enterState( _nState );
|
||||
|
||||
if (m_xConfigItem->GetTargetView())
|
||||
{
|
||||
@@ -132,7 +142,7 @@ void SwMailMergeWizard::enterState( WizardState _nState )
|
||||
m_nRestartPage = _nState;
|
||||
//set ResultSet back to start
|
||||
m_xConfigItem->MoveResultSet(1);
|
||||
EndDialog(RET_REMOVE_TARGET);
|
||||
m_xAssistant->response(RET_REMOVE_TARGET);
|
||||
return;
|
||||
}
|
||||
bool bEnablePrev = true;
|
||||
@@ -188,7 +198,7 @@ void SwMailMergeWizard::UpdateRoadmap()
|
||||
*/
|
||||
|
||||
// enableState( <page id>, false );
|
||||
const sal_uInt16 nCurPage = GetCurLevel();
|
||||
const sal_uInt16 nCurPage = m_xAssistant->get_current_page();
|
||||
TabPage* pCurPage = GetPage( nCurPage );
|
||||
if(!pCurPage)
|
||||
return;
|
||||
@@ -224,6 +234,8 @@ void SwMailMergeWizard::UpdateRoadmap()
|
||||
break;
|
||||
case MM_ADDRESSBLOCKPAGE:
|
||||
bEnable = !m_bDocumentLoad && bEnableOutputTypePage;
|
||||
// update page title for email vs letter
|
||||
m_xAssistant->set_page_title(OString::number(MM_ADDRESSBLOCKPAGE), getStateDisplayName(MM_ADDRESSBLOCKPAGE));
|
||||
break;
|
||||
case MM_GREETINGSPAGE:
|
||||
bEnable = !m_bDocumentLoad && bEnableOutputTypePage &&
|
||||
@@ -240,7 +252,7 @@ void SwMailMergeWizard::UpdateRoadmap()
|
||||
}
|
||||
}
|
||||
|
||||
short SwMailMergeWizard::Execute()
|
||||
short SwMailMergeWizard::run()
|
||||
{
|
||||
OSL_FAIL("SwMailMergeWizard cannot be executed via Dialog::Execute!\n"
|
||||
"It creates a thread (MailDispatcher instance) that will call"
|
||||
|
||||
@@ -73,7 +73,7 @@ SwMailMergeAddressBlockPage::SwMailMergeAddressBlockPage(SwMailMergeWizard* pWiz
|
||||
, m_xDocumentIndexFI(m_xBuilder->weld_label("documentindex"))
|
||||
, m_xPrevSetIB(m_xBuilder->weld_button("prev"))
|
||||
, m_xNextSetIB(m_xBuilder->weld_button("next"))
|
||||
, m_xDifferentlist(m_xBuilder->weld_label("differentlist"))
|
||||
, m_xDifferentlist(m_xBuilder->weld_button("differentlist"))
|
||||
, m_xSettings(new SwAddressPreview(m_xBuilder->weld_scrolled_window("settingspreviewwin")))
|
||||
, m_xPreview(new SwAddressPreview(m_xBuilder->weld_scrolled_window("addresspreviewwin")))
|
||||
, m_xSettingsWIN(new weld::CustomWeld(*m_xBuilder, "settingspreview", *m_xSettings))
|
||||
@@ -111,7 +111,6 @@ void SwMailMergeAddressBlockPage::dispose()
|
||||
m_xPreview.reset();
|
||||
m_xSettings.reset();
|
||||
|
||||
m_pWizard.clear();
|
||||
vcl::OWizardPage::dispose();
|
||||
}
|
||||
|
||||
@@ -210,7 +209,7 @@ IMPL_LINK_NOARG(SwMailMergeAddressBlockPage, AssignHdl_Impl, weld::Button&, void
|
||||
SwMailMergeConfigItem& rConfigItem = m_pWizard->GetConfigItem();
|
||||
const sal_uInt16 nSel = m_xSettings->GetSelectedAddress();
|
||||
const uno::Sequence< OUString> aBlocks = rConfigItem.GetAddressBlocks();
|
||||
SwAssignFieldsDialog aDlg(m_pWizard->GetFrameWeld(), m_pWizard->GetConfigItem(), aBlocks[nSel], true);
|
||||
SwAssignFieldsDialog aDlg(m_pWizard->getDialog(), m_pWizard->GetConfigItem(), aBlocks[nSel], true);
|
||||
if(RET_OK == aDlg.run())
|
||||
{
|
||||
//preview update
|
||||
@@ -263,7 +262,7 @@ void SwMailMergeAddressBlockPage::InsertDataHdl(weld::Button* pButton)
|
||||
{
|
||||
//if no pButton is given, the first set has to be pre-set
|
||||
SwMailMergeConfigItem& rConfig = m_pWizard->GetConfigItem();
|
||||
m_pWizard->EnterWait();
|
||||
std::unique_ptr<weld::WaitObject> xWaitObj(new weld::WaitObject(m_pWizard->getDialog()));
|
||||
if(!pButton)
|
||||
{
|
||||
rConfig.GetResultSet();
|
||||
@@ -274,7 +273,7 @@ void SwMailMergeAddressBlockPage::InsertDataHdl(weld::Button* pButton)
|
||||
sal_Int32 nPos = rConfig.GetResultSetPosition();
|
||||
rConfig.MoveResultSet( bNext ? ++nPos : --nPos);
|
||||
}
|
||||
m_pWizard->LeaveWait();
|
||||
xWaitObj.reset();
|
||||
sal_Int32 nPos = rConfig.GetResultSetPosition();
|
||||
bool bEnable = true;
|
||||
if(nPos < 1)
|
||||
|
||||
@@ -38,7 +38,7 @@ class SwMailMergeAddressBlockPage : public vcl::OWizardPage
|
||||
OUString m_sCurrentAddress;
|
||||
OUString m_sChangeAddress;
|
||||
|
||||
VclPtr<SwMailMergeWizard> m_pWizard;
|
||||
SwMailMergeWizard* m_pWizard;
|
||||
|
||||
std::unique_ptr<weld::Button> m_xAddressListPB;
|
||||
std::unique_ptr<weld::Label> m_xCurrentAddressFI;
|
||||
@@ -58,7 +58,7 @@ class SwMailMergeAddressBlockPage : public vcl::OWizardPage
|
||||
std::unique_ptr<weld::Button> m_xPrevSetIB;
|
||||
std::unique_ptr<weld::Button> m_xNextSetIB;
|
||||
|
||||
std::unique_ptr<weld::Label> m_xDifferentlist;
|
||||
std::unique_ptr<weld::Button> m_xDifferentlist;
|
||||
|
||||
std::unique_ptr<SwAddressPreview> m_xSettings;
|
||||
std::unique_ptr<SwAddressPreview> m_xPreview;
|
||||
|
||||
@@ -88,13 +88,6 @@ SwMailMergeDocSelectPage::SwMailMergeDocSelectPage(SwMailMergeWizard* pWizard, T
|
||||
|
||||
SwMailMergeDocSelectPage::~SwMailMergeDocSelectPage()
|
||||
{
|
||||
disposeOnce();
|
||||
}
|
||||
|
||||
void SwMailMergeDocSelectPage::dispose()
|
||||
{
|
||||
m_pWizard.clear();
|
||||
vcl::OWizardPage::dispose();
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(SwMailMergeDocSelectPage, DocSelectHdl, weld::ToggleButton&, void)
|
||||
@@ -194,7 +187,7 @@ bool SwMailMergeDocSelectPage::commitPage( ::vcl::WizardTypes::CommitPageReason
|
||||
if(!sReloadDocument.isEmpty())
|
||||
m_pWizard->SetReloadDocument( sReloadDocument );
|
||||
m_pWizard->SetRestartPage(MM_OUTPUTTYPETPAGE);
|
||||
m_pWizard->EndDialog(RET_LOAD_DOC);
|
||||
m_pWizard->response(RET_LOAD_DOC);
|
||||
}
|
||||
}
|
||||
return bReturn;
|
||||
|
||||
@@ -29,7 +29,7 @@ class SwMailMergeDocSelectPage : public vcl::OWizardPage
|
||||
OUString m_sLoadFileName;
|
||||
OUString m_sLoadTemplateName;
|
||||
|
||||
VclPtr<SwMailMergeWizard> m_pWizard;
|
||||
SwMailMergeWizard* m_pWizard;
|
||||
|
||||
std::unique_ptr<weld::RadioButton> m_xCurrentDocRB;
|
||||
std::unique_ptr<weld::RadioButton> m_xNewDocRB;
|
||||
@@ -48,7 +48,6 @@ class SwMailMergeDocSelectPage : public vcl::OWizardPage
|
||||
public:
|
||||
SwMailMergeDocSelectPage(SwMailMergeWizard* pWizard, TabPageParent pParent);
|
||||
virtual ~SwMailMergeDocSelectPage() override;
|
||||
virtual void dispose() override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -31,7 +31,7 @@ class SwMailMergeWizard;
|
||||
class SwGreetingsHandler
|
||||
{
|
||||
protected:
|
||||
VclPtr<SwMailMergeWizard> m_pWizard;
|
||||
SwMailMergeWizard* m_pWizard;
|
||||
/// The mail merge state, available even when m_pWizard is nullptr.
|
||||
SwMailMergeConfigItem& m_rConfigItem;
|
||||
bool m_bIsTabPage;
|
||||
|
||||
@@ -159,7 +159,6 @@ SwMailMergeLayoutPage::~SwMailMergeLayoutPage()
|
||||
void SwMailMergeLayoutPage::dispose()
|
||||
{
|
||||
File::remove( m_sExampleURL );
|
||||
m_pWizard.clear();
|
||||
vcl::OWizardPage::dispose();
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ class SwMailMergeLayoutPage : public vcl::OWizardPage
|
||||
|
||||
bool m_bIsGreetingInserted;
|
||||
|
||||
VclPtr<SwMailMergeWizard> m_pWizard;
|
||||
SwMailMergeWizard* m_pWizard;
|
||||
|
||||
css::uno::Reference< css::beans::XPropertySet > m_xViewProperties;
|
||||
|
||||
|
||||
@@ -62,13 +62,6 @@ SwMailMergeOutputTypePage::SwMailMergeOutputTypePage(SwMailMergeWizard* pWizard,
|
||||
|
||||
SwMailMergeOutputTypePage::~SwMailMergeOutputTypePage()
|
||||
{
|
||||
disposeOnce();
|
||||
}
|
||||
|
||||
void SwMailMergeOutputTypePage::dispose()
|
||||
{
|
||||
m_pWizard.clear();
|
||||
vcl::OWizardPage::dispose();
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(SwMailMergeOutputTypePage, TypeHdl_Impl, weld::ToggleButton&, void)
|
||||
@@ -77,7 +70,6 @@ IMPL_LINK_NOARG(SwMailMergeOutputTypePage, TypeHdl_Impl, weld::ToggleButton&, vo
|
||||
m_xLetterHint->set_visible(bLetter);
|
||||
m_xMailHint->set_visible(!bLetter);
|
||||
m_pWizard->GetConfigItem().SetOutputToLetter(bLetter);
|
||||
m_pWizard->updateRoadmapItemLabel( MM_ADDRESSBLOCKPAGE );
|
||||
m_pWizard->UpdateRoadmap();
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class SwMailMergeWizard;
|
||||
|
||||
class SwMailMergeOutputTypePage : public vcl::OWizardPage
|
||||
{
|
||||
VclPtr<SwMailMergeWizard> m_pWizard;
|
||||
SwMailMergeWizard* m_pWizard;
|
||||
|
||||
std::unique_ptr<weld::RadioButton> m_xLetterRB;
|
||||
std::unique_ptr<weld::RadioButton> m_xMailRB;
|
||||
@@ -37,7 +37,6 @@ class SwMailMergeOutputTypePage : public vcl::OWizardPage
|
||||
public:
|
||||
SwMailMergeOutputTypePage(SwMailMergeWizard* pWizard, TabPageParent pParent);
|
||||
virtual ~SwMailMergeOutputTypePage() override;
|
||||
virtual void dispose() override;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -739,13 +739,6 @@ void AbstractSwWordCountFloatDlg_Impl::SetCounts(const SwDocStat &rCurrCnt, cons
|
||||
|
||||
AbstractMailMergeWizard_Impl::~AbstractMailMergeWizard_Impl()
|
||||
{
|
||||
disposeOnce();
|
||||
}
|
||||
|
||||
void AbstractMailMergeWizard_Impl::dispose()
|
||||
{
|
||||
pDlg.disposeAndClear();
|
||||
AbstractMailMergeWizard::dispose();
|
||||
}
|
||||
|
||||
bool AbstractMailMergeWizard_Impl::StartExecuteAsync(AsyncContext &rCtx)
|
||||
@@ -753,27 +746,27 @@ bool AbstractMailMergeWizard_Impl::StartExecuteAsync(AsyncContext &rCtx)
|
||||
// SwMailMergeWizardExecutor wants to run the lifecycle of this dialog
|
||||
// so clear mxOwner here and leave it up to SwMailMergeWizardExecutor
|
||||
rCtx.mxOwner.clear();
|
||||
return pDlg->StartExecuteAsync(rCtx);
|
||||
return weld::GenericDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn);
|
||||
}
|
||||
|
||||
short AbstractMailMergeWizard_Impl::Execute()
|
||||
{
|
||||
return pDlg->Execute();
|
||||
return m_xDlg->run();
|
||||
}
|
||||
|
||||
OUString AbstractMailMergeWizard_Impl::GetReloadDocument() const
|
||||
{
|
||||
return pDlg->GetReloadDocument();
|
||||
return m_xDlg->GetReloadDocument();
|
||||
}
|
||||
|
||||
void AbstractMailMergeWizard_Impl::ShowPage( sal_uInt16 nLevel )
|
||||
{
|
||||
pDlg->skipUntil(nLevel);
|
||||
m_xDlg->skipUntil(nLevel);
|
||||
}
|
||||
|
||||
sal_uInt16 AbstractMailMergeWizard_Impl::GetRestartPage() const
|
||||
{
|
||||
return pDlg->GetRestartPage();
|
||||
return m_xDlg->GetRestartPage();
|
||||
}
|
||||
|
||||
VclPtr<AbstractSwInsertAbstractDlg> SwAbstractDialogFactory_Impl::CreateSwInsertAbstractDlg(weld::Window* pParent)
|
||||
@@ -1149,7 +1142,7 @@ VclPtr<AbstractMailMergeWizard> SwAbstractDialogFactory_Impl::CreateMailMergeWiz
|
||||
SwView& rView, std::shared_ptr<SwMailMergeConfigItem>& rConfigItem)
|
||||
{
|
||||
#if HAVE_FEATURE_DBCONNECTIVITY
|
||||
return VclPtr<AbstractMailMergeWizard_Impl>::Create( VclPtr<SwMailMergeWizard>::Create(rView, rConfigItem));
|
||||
return VclPtr<AbstractMailMergeWizard_Impl>::Create(std::make_unique<SwMailMergeWizard>(rView, rConfigItem));
|
||||
#else
|
||||
(void) rView;
|
||||
(void) rConfigItem;
|
||||
|
||||
@@ -637,14 +637,14 @@ public:
|
||||
class SwMailMergeWizard;
|
||||
class AbstractMailMergeWizard_Impl : public AbstractMailMergeWizard
|
||||
{
|
||||
VclPtr<SwMailMergeWizard> pDlg;
|
||||
std::shared_ptr<SwMailMergeWizard> m_xDlg;
|
||||
|
||||
public:
|
||||
explicit AbstractMailMergeWizard_Impl( SwMailMergeWizard* p )
|
||||
: pDlg(p)
|
||||
{}
|
||||
explicit AbstractMailMergeWizard_Impl(std::unique_ptr<SwMailMergeWizard> p)
|
||||
: m_xDlg(std::move(p))
|
||||
{
|
||||
}
|
||||
virtual ~AbstractMailMergeWizard_Impl() override;
|
||||
virtual void dispose() override;
|
||||
virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
|
||||
virtual short Execute() override;
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ class SwMailMergeConfigItem;
|
||||
#define MM_GREETINGSPAGE 3
|
||||
#define MM_LAYOUTPAGE 4
|
||||
|
||||
class SwMailMergeWizard : public ::vcl::RoadmapWizard
|
||||
class SwMailMergeWizard : public ::vcl::RoadmapWizardMachine
|
||||
{
|
||||
SwView* const m_pSwView;
|
||||
OUString sDocumentURL;
|
||||
@@ -48,14 +48,12 @@ class SwMailMergeWizard : public ::vcl::RoadmapWizard
|
||||
|
||||
sal_uInt16 m_nRestartPage;
|
||||
|
||||
using vcl::OWizardMachine::skipUntil;
|
||||
using vcl::WizardMachine::skipUntil;
|
||||
|
||||
protected:
|
||||
virtual VclPtr<TabPage> createPage( WizardState _nState ) override;
|
||||
virtual void enterState( WizardState _nState ) override;
|
||||
|
||||
// roadmap feature ??
|
||||
// virtual sal_Bool prepareLeaveCurrentState( CommitPageReason _eReason );
|
||||
virtual OUString getStateDisplayName( WizardState _nState ) const override;
|
||||
|
||||
public:
|
||||
@@ -77,11 +75,9 @@ public:
|
||||
void SetRestartPage(sal_uInt16 nPage) { m_nRestartPage = nPage;}
|
||||
|
||||
bool skipUntil( sal_uInt16 nPage)
|
||||
{return ::vcl::RoadmapWizard::skipUntil(WizardState(nPage));}
|
||||
{return ::vcl::RoadmapWizardMachine::skipUntil(WizardState(nPage));}
|
||||
|
||||
using vcl::RoadmapWizard::updateRoadmapItemLabel;
|
||||
|
||||
virtual short Execute() override;
|
||||
virtual short run() override;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.16.1 -->
|
||||
<!-- Generated with glade 3.22.1 -->
|
||||
<interface domain="sw">
|
||||
<requires lib="gtk+" version="3.18"/>
|
||||
<requires lib="LibreOffice" version="1.0"/>
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-media-previous</property>
|
||||
<property name="stock">gtk-go-back</property>
|
||||
<property name="icon_size">1</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-media-next</property>
|
||||
<property name="stock">gtk-go-forward</property>
|
||||
<property name="icon_size">1</property>
|
||||
</object>
|
||||
<object class="GtkBox" id="MMAddressBlockPage">
|
||||
@@ -68,8 +67,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -83,30 +80,25 @@
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="currentaddress">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="no_show_all">True</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|currentaddress">Current address list: %1</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">2</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -120,48 +112,40 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|label2">Select the address list containing the address data you want to use. This data is needed to create the address block.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max_width_chars">56</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|label3">1.</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|label3">1.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -182,8 +166,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -197,48 +179,40 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|label4">Match the field name used in the mail merge to the column headers in your data source.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max_width_chars">56</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="settingsft1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|settingsft1">3.</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|settingsft1">3.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -253,14 +227,13 @@
|
||||
<object class="GtkLabel" id="settingsft">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|settingsft">2.</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|settingsft">2.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
@@ -277,8 +250,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -314,8 +285,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -344,16 +313,12 @@
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -369,8 +334,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
@@ -379,16 +342,12 @@
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -438,8 +397,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -458,8 +415,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -473,8 +428,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -482,22 +435,18 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|documentindex">Document: %1</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
@@ -506,8 +455,6 @@
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -521,48 +468,40 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|label6">Check if the address data matches correctly.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max_width_chars">56</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="settingsft2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|settingsft2">4.</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmaddressblockpage|settingsft2">4.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.18.3 -->
|
||||
<!-- Generated with glade 3.22.1 -->
|
||||
<interface domain="sw">
|
||||
<requires lib="gtk+" version="3.18"/>
|
||||
<object class="GtkBox" id="MMOutputTypePage">
|
||||
@@ -40,11 +40,12 @@
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmoutputtypepage|letterft">Send letters to a group of recipients. The letters can contain an address block and a salutation. The letters can be personalized for each recipient.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="width_chars">72</property>
|
||||
<property name="max_width_chars">72</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -57,11 +58,12 @@
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="label" translatable="yes" context="mmoutputtypepage|emailft">Send email messages to a group of recipients. The email messages can contain a salutation. The email messages can be personalized for each recipient.</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="width_chars">72</property>
|
||||
<property name="max_width_chars">72</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-media-previous</property>
|
||||
<property name="stock">gtk-go-back</property>
|
||||
<property name="icon_size">1</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-media-next</property>
|
||||
<property name="stock">gtk-go-forward</property>
|
||||
<property name="icon_size">1</property>
|
||||
</object>
|
||||
<object class="GtkBox" id="MMSalutationPage">
|
||||
|
||||
@@ -1553,10 +1553,18 @@ public:
|
||||
// take the first shown page as the size for all pages
|
||||
if (m_xWizard->GetPageSizePixel().Width() == 0)
|
||||
{
|
||||
TabPage* pPage = m_xWizard->GetPage(m_aIds[nPage]);
|
||||
assert(pPage);
|
||||
Size aPageSize(pPage->get_preferred_size());
|
||||
m_xWizard->SetPageSizePixel(aPageSize);
|
||||
Size aFinalSize;
|
||||
for (int i = 0, nPages = get_n_pages(); i < nPages; ++i)
|
||||
{
|
||||
TabPage* pPage = m_xWizard->GetPage(m_aIds[i]);
|
||||
assert(pPage);
|
||||
Size aPageSize(pPage->get_preferred_size());
|
||||
if (aPageSize.Width() > aFinalSize.Width())
|
||||
aFinalSize.setWidth(aPageSize.Width());
|
||||
if (aPageSize.Height() > aFinalSize.Height())
|
||||
aFinalSize.setHeight(aPageSize.Height());
|
||||
}
|
||||
m_xWizard->SetPageSizePixel(aFinalSize);
|
||||
}
|
||||
|
||||
m_xWizard->ShowPage(m_aIds[nPage]);
|
||||
@@ -2238,15 +2246,15 @@ weld::Button* SalInstanceDialog::weld_widget_for_response(int nResponse)
|
||||
weld::Button* SalInstanceAssistant::weld_widget_for_response(int nResponse)
|
||||
{
|
||||
PushButton* pButton = nullptr;
|
||||
if (nResponse == static_cast<int>(WizardButtonFlags::NEXT))
|
||||
if (nResponse == RET_YES)
|
||||
pButton = m_xWizard->m_pNextPage;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::PREVIOUS))
|
||||
else if (nResponse == RET_NO)
|
||||
pButton = m_xWizard->m_pPrevPage;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::FINISH))
|
||||
else if (nResponse == RET_OK)
|
||||
pButton = m_xWizard->m_pFinish;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::CANCEL))
|
||||
else if (nResponse == RET_CANCEL)
|
||||
pButton = m_xWizard->m_pCancel;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::HELP))
|
||||
else if (nResponse == RET_HELP)
|
||||
pButton = m_xWizard->m_pHelp;
|
||||
if (pButton)
|
||||
return new SalInstanceButton(pButton, nullptr, false);
|
||||
|
||||
@@ -688,11 +688,11 @@ namespace vcl
|
||||
: AssistantController(pParent, "vcl/ui/wizard.ui", "Wizard")
|
||||
, m_nCurState(0)
|
||||
, m_pFirstPage(nullptr)
|
||||
, m_xFinish(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::FINISH)))
|
||||
, m_xCancel(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::CANCEL)))
|
||||
, m_xNextPage(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::NEXT)))
|
||||
, m_xPrevPage(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::PREVIOUS)))
|
||||
, m_xHelp(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::HELP)))
|
||||
, m_xFinish(m_xAssistant->weld_widget_for_response(RET_OK))
|
||||
, m_xCancel(m_xAssistant->weld_widget_for_response(RET_CANCEL))
|
||||
, m_xNextPage(m_xAssistant->weld_widget_for_response(RET_YES))
|
||||
, m_xPrevPage(m_xAssistant->weld_widget_for_response(RET_NO))
|
||||
, m_xHelp(m_xAssistant->weld_widget_for_response(RET_HELP))
|
||||
, m_pImpl(new WizardMachineImplData)
|
||||
{
|
||||
implConstruct(nButtonFlags);
|
||||
@@ -892,7 +892,7 @@ namespace vcl
|
||||
|
||||
bool WizardMachine::onFinish()
|
||||
{
|
||||
return Finish(static_cast<int>(WizardButtonFlags::FINISH));
|
||||
return Finish(RET_OK);
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(WizardMachine, OnFinish, weld::Button&, void)
|
||||
@@ -909,7 +909,7 @@ namespace vcl
|
||||
|
||||
IMPL_LINK_NOARG(WizardMachine, OnCancel, weld::Button&, void)
|
||||
{
|
||||
m_xAssistant->response(static_cast<int>(WizardButtonFlags::CANCEL));
|
||||
m_xAssistant->response(RET_CANCEL);
|
||||
}
|
||||
|
||||
WizardMachine::WizardState WizardMachine::determineNextState( WizardState _nCurrentState ) const
|
||||
|
||||
@@ -3010,7 +3010,7 @@ struct DialogRunner
|
||||
}
|
||||
|
||||
static void signal_response(GtkDialog*, gint nResponseId, gpointer data);
|
||||
static void signal_cancel(GtkDialog*, gpointer data);
|
||||
static void signal_cancel(GtkAssistant*, gpointer data);
|
||||
|
||||
static gboolean signal_delete(GtkDialog* pDialog, GdkEventAny*, gpointer data)
|
||||
{
|
||||
@@ -3159,6 +3159,7 @@ private:
|
||||
std::function<void(sal_Int32)> m_aFunc;
|
||||
gulong m_nCloseSignalId;
|
||||
gulong m_nResponseSignalId;
|
||||
gulong m_nCancelSignalId;
|
||||
gulong m_nSignalDeleteId;
|
||||
|
||||
// for calc ref dialog that shrink to range selection widgets and resize back
|
||||
@@ -3185,12 +3186,25 @@ private:
|
||||
pThis->asyncresponse(ret);
|
||||
}
|
||||
|
||||
static gboolean signalAsyncDelete(GtkDialog*, GdkEventAny*, gpointer)
|
||||
static void signalAsyncCancel(GtkAssistant*, gpointer widget)
|
||||
{
|
||||
GtkInstanceDialog* pThis = static_cast<GtkInstanceDialog*>(widget);
|
||||
// make esc in an assistant act as if cancel button was pressed
|
||||
pThis->close(false);
|
||||
}
|
||||
|
||||
static gboolean signalAsyncDelete(GtkWidget* pDialog, GdkEventAny*, gpointer widget)
|
||||
{
|
||||
GtkInstanceDialog* pThis = static_cast<GtkInstanceDialog*>(widget);
|
||||
if (GTK_IS_ASSISTANT(pThis->m_pDialog))
|
||||
{
|
||||
// An assistant isn't a dialog, but we want to treat it like one
|
||||
signalAsyncResponse(pDialog, GTK_RESPONSE_DELETE_EVENT, widget);
|
||||
}
|
||||
return true; /* Do not destroy */
|
||||
}
|
||||
|
||||
virtual int GtkToVcl(int ret)
|
||||
static int GtkToVcl(int ret)
|
||||
{
|
||||
if (ret == GTK_RESPONSE_OK)
|
||||
ret = RET_OK;
|
||||
@@ -3204,10 +3218,12 @@ private:
|
||||
ret = RET_YES;
|
||||
else if (ret == GTK_RESPONSE_NO)
|
||||
ret = RET_NO;
|
||||
else if (ret == GTK_RESPONSE_HELP)
|
||||
ret = RET_HELP;
|
||||
return ret;
|
||||
}
|
||||
|
||||
virtual int VclToGtk(int nResponse)
|
||||
static int VclToGtk(int nResponse)
|
||||
{
|
||||
if (nResponse == RET_OK)
|
||||
return GTK_RESPONSE_OK;
|
||||
@@ -3233,6 +3249,7 @@ public:
|
||||
, m_aDialogRun(pDialog, this)
|
||||
, m_nCloseSignalId(g_signal_connect(m_pDialog, "close", G_CALLBACK(signalClose), this))
|
||||
, m_nResponseSignalId(0)
|
||||
, m_nCancelSignalId(0)
|
||||
, m_nSignalDeleteId(0)
|
||||
, m_pRefEdit(nullptr)
|
||||
, m_nOldEditWidth(0)
|
||||
@@ -3243,7 +3260,7 @@ public:
|
||||
|
||||
virtual bool runAsync(std::shared_ptr<weld::DialogController> rDialogController, const std::function<void(sal_Int32)>& func) override
|
||||
{
|
||||
assert(!m_nResponseSignalId);
|
||||
assert(!m_nResponseSignalId && !m_nCancelSignalId);
|
||||
|
||||
m_xDialogController = rDialogController;
|
||||
m_aFunc = func;
|
||||
@@ -3252,7 +3269,8 @@ public:
|
||||
m_aDialogRun.inc_modal_count();
|
||||
show();
|
||||
|
||||
m_nResponseSignalId = g_signal_connect(m_pDialog, "response", G_CALLBACK(signalAsyncResponse), this);
|
||||
m_nResponseSignalId = GTK_IS_DIALOG(m_pDialog) ? g_signal_connect(m_pDialog, "response", G_CALLBACK(signalAsyncResponse), this) : 0;
|
||||
m_nCancelSignalId = GTK_IS_ASSISTANT(m_pDialog) ? g_signal_connect(m_pDialog, "cancel", G_CALLBACK(signalAsyncCancel), this) : 0;
|
||||
m_nSignalDeleteId = g_signal_connect(m_pDialog, "delete-event", G_CALLBACK(signalAsyncDelete), this);
|
||||
|
||||
return true;
|
||||
@@ -3261,7 +3279,7 @@ public:
|
||||
virtual bool runAsync(std::shared_ptr<Dialog> const & rxSelf, const std::function<void(sal_Int32)>& func) override
|
||||
{
|
||||
assert( rxSelf.get() == this );
|
||||
assert(!m_nResponseSignalId);
|
||||
assert(!m_nResponseSignalId && !m_nCancelSignalId);
|
||||
|
||||
// In order to store a shared_ptr to ourself, we have to have been constructed by make_shared,
|
||||
// which is that rxSelf enforces.
|
||||
@@ -3272,7 +3290,8 @@ public:
|
||||
m_aDialogRun.inc_modal_count();
|
||||
show();
|
||||
|
||||
m_nResponseSignalId = g_signal_connect(m_pDialog, "response", G_CALLBACK(signalAsyncResponse), this);
|
||||
m_nResponseSignalId = GTK_IS_DIALOG(m_pDialog) ? g_signal_connect(m_pDialog, "response", G_CALLBACK(signalAsyncResponse), this) : 0;
|
||||
m_nCancelSignalId = GTK_IS_ASSISTANT(m_pDialog) ? g_signal_connect(m_pDialog, "cancel", G_CALLBACK(signalAsyncCancel), this) : 0;
|
||||
m_nSignalDeleteId = g_signal_connect(m_pDialog, "delete-event", G_CALLBACK(signalAsyncDelete), this);
|
||||
|
||||
return true;
|
||||
@@ -3442,6 +3461,8 @@ public:
|
||||
g_signal_handler_disconnect(m_pDialog, m_nCloseSignalId);
|
||||
if (m_nResponseSignalId)
|
||||
g_signal_handler_disconnect(m_pDialog, m_nResponseSignalId);
|
||||
if (m_nCancelSignalId)
|
||||
g_signal_handler_disconnect(m_pDialog, m_nCancelSignalId);
|
||||
if (m_nSignalDeleteId)
|
||||
g_signal_handler_disconnect(m_pDialog, m_nSignalDeleteId);
|
||||
}
|
||||
@@ -3462,7 +3483,7 @@ void DialogRunner::signal_response(GtkDialog*, gint nResponseId, gpointer data)
|
||||
pThis->loop_quit();
|
||||
}
|
||||
|
||||
void DialogRunner::signal_cancel(GtkDialog*, gpointer data)
|
||||
void DialogRunner::signal_cancel(GtkAssistant*, gpointer data)
|
||||
{
|
||||
DialogRunner* pThis = static_cast<DialogRunner*>(data);
|
||||
|
||||
@@ -3630,40 +3651,6 @@ private:
|
||||
return -1;
|
||||
}
|
||||
|
||||
virtual int GtkToVcl(int ret) override
|
||||
{
|
||||
if (ret == GTK_RESPONSE_OK)
|
||||
ret = static_cast<int>(WizardButtonFlags::FINISH);
|
||||
else if (ret == GTK_RESPONSE_CANCEL)
|
||||
ret = static_cast<int>(WizardButtonFlags::CANCEL);
|
||||
else if (ret == GTK_RESPONSE_DELETE_EVENT)
|
||||
ret = static_cast<int>(WizardButtonFlags::CANCEL);
|
||||
else if (ret == GTK_RESPONSE_CLOSE)
|
||||
ret = static_cast<int>(WizardButtonFlags::CANCEL);
|
||||
else if (ret == GTK_RESPONSE_ACCEPT)
|
||||
ret = static_cast<int>(WizardButtonFlags::NEXT);
|
||||
else if (ret == GTK_RESPONSE_REJECT)
|
||||
ret = static_cast<int>(WizardButtonFlags::PREVIOUS);
|
||||
else if (ret == GTK_RESPONSE_HELP)
|
||||
ret = static_cast<int>(WizardButtonFlags::HELP);
|
||||
return ret;
|
||||
}
|
||||
|
||||
virtual int VclToGtk(int nResponse) override
|
||||
{
|
||||
if (nResponse == static_cast<int>(WizardButtonFlags::NEXT))
|
||||
return GTK_RESPONSE_ACCEPT;
|
||||
if (nResponse == static_cast<int>(WizardButtonFlags::PREVIOUS))
|
||||
return GTK_RESPONSE_REJECT;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::FINISH))
|
||||
return GTK_RESPONSE_OK;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::CANCEL))
|
||||
return GTK_RESPONSE_CANCEL;
|
||||
else if (nResponse == static_cast<int>(WizardButtonFlags::HELP))
|
||||
return GTK_RESPONSE_HELP;
|
||||
return nResponse;
|
||||
}
|
||||
|
||||
static void wrap_sidebar_label(GtkWidget *pWidget, gpointer /*user_data*/)
|
||||
{
|
||||
if (GTK_IS_LABEL(pWidget))
|
||||
@@ -3851,9 +3838,9 @@ public:
|
||||
virtual GtkButton* get_widget_for_response(int nGtkResponse) override
|
||||
{
|
||||
GtkButton* pButton = nullptr;
|
||||
if (nGtkResponse == GTK_RESPONSE_ACCEPT)
|
||||
if (nGtkResponse == GTK_RESPONSE_YES)
|
||||
pButton = m_pNext;
|
||||
else if (nGtkResponse == GTK_RESPONSE_REJECT)
|
||||
else if (nGtkResponse == GTK_RESPONSE_NO)
|
||||
pButton = m_pBack;
|
||||
else if (nGtkResponse == GTK_RESPONSE_OK)
|
||||
pButton = m_pFinish;
|
||||
@@ -5212,8 +5199,13 @@ void GtkInstanceDialog::response(int nResponse)
|
||||
gtk_dialog_response(GTK_DIALOG(m_pDialog), nGtkResponse);
|
||||
else if (GTK_IS_ASSISTANT(m_pDialog))
|
||||
{
|
||||
m_aDialogRun.m_nResponseId = nGtkResponse;
|
||||
m_aDialogRun.loop_quit();
|
||||
if (!m_aDialogRun.loop_is_running())
|
||||
asyncresponse(nGtkResponse);
|
||||
else
|
||||
{
|
||||
m_aDialogRun.m_nResponseId = nGtkResponse;
|
||||
m_aDialogRun.loop_quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user