summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay Deep <akshaydeepiitr@gmail.com>2016-05-30 01:57:00 +0530
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-06-01 14:03:40 +0000
commitbb8040595c9b6f0ccde39e6833f27a50abb891d8 (patch)
tree648623177d6ef56e12305239cabbee3cf19dedae
parent6a8407d82d71083c8bdec6a106ba9092a5196cbe (diff)
Impress: Replace Presentation Wizard with Template Manager
Drop the Presentation wizard and show the Template Manager instead when starting Impress. 1. Opens a blank template with Template Manager. 2. If user selects a template, load it over the blank template. 3. SfxTemplateSelectionDlg for impress integration. Change-Id: Ia9c3cafc973e3741c6ea9f838018a35956f37f4a Reviewed-on: https://gerrit.libreoffice.org/25642 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
-rw-r--r--include/sfx2/templatedlg.hxx25
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Common.xcu22
-rw-r--r--sd/Library_sdui.mk2
-rw-r--r--sd/UIConfig_simpress.mk1
-rw-r--r--sd/inc/sdabstdlg.hxx14
-rw-r--r--sd/source/ui/app/sdmod1.cxx160
-rw-r--r--sd/source/ui/dlg/dlgass.cxx1896
-rw-r--r--sd/source/ui/dlg/dlgassim.cxx210
-rw-r--r--sd/source/ui/dlg/dlgassim.hxx56
-rw-r--r--sd/source/ui/dlg/sddlgfact.cxx47
-rw-r--r--sd/source/ui/dlg/sddlgfact.hxx15
-rw-r--r--sd/source/ui/dlg/sduiexp.cxx1
-rw-r--r--sd/source/ui/inc/dlgass.hxx65
-rw-r--r--sd/uiconfig/simpress/ui/assistentdialog.ui1296
-rw-r--r--sfx2/source/doc/templatedlg.cxx42
15 files changed, 74 insertions, 3778 deletions
diff --git a/include/sfx2/templatedlg.hxx b/include/sfx2/templatedlg.hxx
index ce95841dd6d9..d7920753575d 100644
--- a/include/sfx2/templatedlg.hxx
+++ b/include/sfx2/templatedlg.hxx
@@ -53,7 +53,7 @@ public:
void setDocumentModel (const css::uno::Reference<css::frame::XModel> &rModel);
-private:
+protected:
void getApplicationSpecificSettings();
@@ -137,7 +137,7 @@ private:
/// Return filter according to the currently selected application filter.
FILTER_APPLICATION getCurrentApplicationFilter();
-private:
+protected:
VclPtr<Edit> mpSearchFilter;
VclPtr<ListBox> mpCBApp;
@@ -209,6 +209,27 @@ public:
virtual void dispose() override;
};
+
+// class SfxTemplateSelectionDialog -------------------------------------------------------------------
+
+class SFX2_DLLPUBLIC SfxTemplateSelectionDlg : public SfxTemplateManagerDlg
+{
+public:
+ SfxTemplateSelectionDlg(vcl::Window *parent = nullptr);
+
+ virtual ~SfxTemplateSelectionDlg();
+ virtual void dispose() override;
+ virtual short Execute() override;
+
+ inline OUString getTemplatePath() const { return msTemplatePath; };
+
+private:
+ DECL_LINK_TYPED(OpenTemplateHdl, ThumbnailViewItem*, void);
+
+ OUString msTemplatePath;
+};
+
+
#endif // INCLUDED_SFX2_INC_TEMPLATEDLG_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu
index 074c4756fc50..847ab0d6c0cc 100644
--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
@@ -389,28 +389,6 @@
<value>private:image/3216</value>
</prop>
</node>
- <node oor:name="m4" oor:op="replace">
- <prop oor:name="URL" oor:type="xs:string">
- <value>private:separator</value>
- </prop>
- <prop oor:name="TargetName" oor:type="xs:string">
- <value>_self</value>
- </prop>
- </node>
- <node oor:name="m5" oor:op="replace" install:module="impress">
- <prop oor:name="URL" oor:type="xs:string">
- <value>slot:10425</value>
- </prop>
- <prop oor:name="Title">
- <value xml:lang="en-US">~Presentation...</value>
- </prop>
- <prop oor:name="TargetName" oor:type="xs:string">
- <value>_self</value>
- </prop>
- <prop oor:name="ImageIdentifier" oor:type="xs:string">
- <value>private:image/3216</value>
- </prop>
- </node>
<node oor:name="m6" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>private:separator</value>
diff --git a/sd/Library_sdui.mk b/sd/Library_sdui.mk
index 27b4069b354a..86c72727d803 100644
--- a/sd/Library_sdui.mk
+++ b/sd/Library_sdui.mk
@@ -68,8 +68,6 @@ $(eval $(call gb_Library_add_exception_objects,sdui,\
sd/source/ui/dlg/brkdlg \
sd/source/ui/dlg/copydlg \
sd/source/ui/dlg/custsdlg \
- sd/source/ui/dlg/dlgass \
- sd/source/ui/dlg/dlgassim \
sd/source/ui/dlg/dlgchar \
sd/source/ui/dlg/dlgfield \
sd/source/ui/dlg/dlgolbul \
diff --git a/sd/UIConfig_simpress.mk b/sd/UIConfig_simpress.mk
index 3e7b3feb3581..0309c75c8a23 100644
--- a/sd/UIConfig_simpress.mk
+++ b/sd/UIConfig_simpress.mk
@@ -103,7 +103,6 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/simpress,\
))
$(eval $(call gb_UIConfig_add_uifiles,modules/simpress,\
- sd/uiconfig/simpress/ui/assistentdialog \
sd/uiconfig/simpress/ui/customanimationspanel \
sd/uiconfig/simpress/ui/customanimationproperties \
sd/uiconfig/simpress/ui/customanimationeffecttab \
diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx
index 702ba605d8a1..8a9ed331c47a 100644
--- a/sd/inc/sdabstdlg.hxx
+++ b/sd/inc/sdabstdlg.hxx
@@ -72,19 +72,6 @@ public:
virtual bool IsCustomShow() const = 0;
};
-class AbstractAssistentDlg : public VclAbstractDialog
-{
-public:
- virtual SfxObjectShellLock GetDocument() = 0;
- virtual OutputType GetOutputMedium() const = 0;
- virtual bool IsSummary() const = 0;
- virtual StartType GetStartType() const = 0;
- virtual OUString GetDocPath() const = 0;
- virtual bool GetStartWithFlag() const = 0;
- virtual bool IsDocEmpty() const = 0;
- virtual css::uno::Sequence< css::beans::NamedValue > GetPassword() = 0;
-};
-
class AbstractSdModifyFieldDlg : public VclAbstractDialog
{
public:
@@ -170,7 +157,6 @@ public:
virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg(vcl::Window* pWindow, SdDrawDocument& rDrawDoc) = 0;
virtual SfxAbstractTabDialog* CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) = 0;
virtual SfxAbstractTabDialog* CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage = true) = 0;
- virtual AbstractAssistentDlg* CreateAssistentDlg(bool bAutoPilot) = 0;
virtual AbstractSdModifyFieldDlg* CreateSdModifyFieldDlg(vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) = 0;
virtual AbstractSdSnapLineDlg* CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) = 0;
virtual AbstractSdInsertLayerDlg* CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) = 0;
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
index 4d45f0a72165..2bb372a8756a 100644
--- a/sd/source/ui/app/sdmod1.cxx
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -33,6 +33,7 @@
#include <sfx2/request.hxx>
#include <sfx2/printer.hxx>
#include <sfx2/docfile.hxx>
+#include <sfx2/templatedlg.hxx>
#include <editeng/paperinf.hxx>
#include <editeng/eeitem.hxx>
#include <unotools/useroptions.hxx>
@@ -551,159 +552,16 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
}
else
{
- SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
- std::unique_ptr< AbstractAssistentDlg > pPilotDlg( pFact ? pFact->CreateAssistentDlg( !bNewDocDirect ) : nullptr );
+ //create an empty document into frame
+ pFrame = CreateEmptyDocument( xTargetFrame );
- // Open the Pilot
- if( pPilotDlg.get() && pPilotDlg->Execute()==RET_OK )
- {
- const OUString aDocPath( pPilotDlg->GetDocPath());
- const bool bIsDocEmpty = pPilotDlg->IsDocEmpty();
-
- // So that you can open the document without AutoLayout-Dialog
- pOpt->SetStartWithTemplate(false);
- if(bNewDocDirect && !pPilotDlg->GetStartWithFlag())
- bStartWithTemplate = false;
-
- if( pPilotDlg->GetStartType() == ST_OPEN )
- {
- DBG_ASSERT( !aDocPath.isEmpty(), "The autopilot should have asked for a file itself already!" );
- if (!aDocPath.isEmpty())
- {
- css::uno::Sequence< css::beans::NamedValue > aPasswrd( pPilotDlg->GetPassword() );
-
- SfxStringItem aFile( SID_FILE_NAME, aDocPath );
- SfxStringItem aReferer( SID_REFERER, OUString());
- SfxUnoAnyItem aPassword( SID_ENCRYPTIONDATA, css::uno::makeAny(aPasswrd) );
-
- if ( xTargetFrame.is() )
- {
- SfxAllItemSet aSet( *rReq.GetArgs()->GetPool() );
- aSet.Put( aFile );
- aSet.Put( aReferer );
- // Put the password into the request
- // only if it is not empty.
- if (aPasswrd.getLength() > 0)
- aSet.Put( aPassword );
-
- const SfxPoolItem* pRet = SfxFrame::OpenDocumentSynchron( aSet, xTargetFrame );
- const SfxViewFrameItem* pFrameItem = dynamic_cast<const SfxViewFrameItem*>( pRet );
- if ( pFrameItem && pFrameItem->GetFrame() )
- pFrame = &pFrameItem->GetFrame()->GetFrame();
- }
- else
- {
- SfxRequest aRequest (SID_OPENDOC, SfxCallMode::SYNCHRON, SfxGetpApp()->GetPool());
- aRequest.AppendItem (aFile);
- aRequest.AppendItem (aReferer);
- // Put the password into the request
- // only if it is not empty.
- if (aPasswrd.getLength() > 0)
- aRequest.AppendItem (aPassword);
- aRequest.AppendItem (SfxStringItem (
- SID_TARGETNAME,
- OUString("_default")));
- try
- {
- const SfxPoolItem* pRet = SfxGetpApp()->ExecuteSlot (aRequest);
- const SfxViewFrameItem* pFrameItem = dynamic_cast<const SfxViewFrameItem*>( pRet );
- if ( pFrameItem )
- pFrame = &pFrameItem->GetFrame()->GetFrame();
- }
- catch (const css::uno::Exception&)
- {
- DBG_ASSERT (false, "caught IllegalArgumentException while loading document from Impress autopilot");
- }
- }
- }
-
- pOpt->SetStartWithTemplate(bStartWithTemplate);
- if(bNewDocDirect && !bStartWithTemplate)
- {
- std::unique_ptr< SfxItemSet > pRet( CreateItemSet( SID_SD_EDITOPTIONS ) );
- if(pRet.get())
- ApplyItemSet( SID_SD_EDITOPTIONS, *pRet.get() );
-
- }
- }
- else
- {
- SfxObjectShellLock xShell( pPilotDlg->GetDocument() );
- SfxObjectShell* pShell = xShell;
- if( pShell )
- {
- SfxViewFrame* pViewFrame = SfxViewFrame::LoadDocumentIntoFrame( *pShell, xTargetFrame );
- DBG_ASSERT( pViewFrame, "no ViewFrame!!" );
- pFrame = pViewFrame ? &pViewFrame->GetFrame() : nullptr;
+ //Launch TemplateSelectionDialog
+ ScopedVclPtrInstance< SfxTemplateSelectionDlg > aTemplDlg;
+ aTemplDlg->Execute();
- if(bNewDocDirect && !bStartWithTemplate)
- {
- std::unique_ptr< SfxItemSet > pRet( CreateItemSet( SID_SD_EDITOPTIONS ) );
- if(pRet.get())
- ApplyItemSet( SID_SD_EDITOPTIONS, *pRet.get() );
- }
-
- ::sd::DrawDocShell* pDocShell(nullptr);
- ::sd::ViewShellBase* pBase(nullptr);
- SdDrawDocument* pDoc(nullptr);
- if (pShell && pViewFrame)
- {
- pDocShell = dynamic_cast< ::sd::DrawDocShell *>( pShell );
- pDoc = pDocShell ? pDocShell->GetDoc() : nullptr;
- pBase = ::sd::ViewShellBase::GetViewShellBase(pViewFrame);
- }
-
- if (pDoc && pBase)
- {
- std::shared_ptr<sd::ViewShell> pViewSh = pBase->GetMainViewShell();
- SdOptions* pOptions = GetSdOptions(pDoc->GetDocumentType());
-
- if (pOptions && pViewSh.get())
- {
- // The AutoPilot-document shall be open without its own options
- ::sd::FrameView* pFrameView = pViewSh->GetFrameView();
- pFrameView->Update(pOptions);
- pViewSh->ReadFrameViewData(pFrameView);
- }
-
- ChangeMedium( pDocShell, pViewFrame, pPilotDlg->GetOutputMedium() );
-
- if(pPilotDlg->IsSummary())
- AddSummaryPage(pViewFrame, pDoc);
-
- // empty document
- if (aDocPath.isEmpty() && pViewFrame && pViewFrame->GetDispatcher())
- {
- SfxBoolItem aIsChangedItem(SID_MODIFYPAGE, !bIsDocEmpty);
- SfxUInt32Item eAutoLayout( ID_VAL_WHATLAYOUT, (sal_uInt32) AUTOLAYOUT_TITLE );
- pViewFrame->GetDispatcher()->ExecuteList(SID_MODIFYPAGE,
- SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
- { &aIsChangedItem, &eAutoLayout });
- }
-
- // clear document info
- using namespace ::com::sun::star;
- uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
- pDocShell->GetModel(), uno::UNO_QUERY_THROW);
- uno::Reference<document::XDocumentProperties>
- xDocProps(xDPS->getDocumentProperties());
- DBG_ASSERT(xDocProps.is(), "no DocumentProperties");
- xDocProps->resetUserData(
- SvtUserOptions().GetFullName() );
- xDocProps->setTemplateName(xDocProps->getTitle());
- xDocProps->setTemplateURL(pPilotDlg->GetDocPath());
-
- pDoc->SetChanged(!bIsDocEmpty);
-
- pDocShell->SetUseUserData(true);
-
- // clear UNDO stack after autopilot
- pDocShell->ClearUndoBuffer();
- }
- }
- pOpt->SetStartWithTemplate(bStartWithTemplate);
- }
- }
+ //pFrame is loaded with the desired template
+ if(!aTemplDlg->getTemplatePath().isEmpty())
+ pFrame = CreateFromTemplate(aTemplDlg->getTemplatePath(), xTargetFrame);
}
}
diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
deleted file mode 100644
index 95caa0e7990a..000000000000
--- a/sd/source/ui/dlg/dlgass.cxx
+++ /dev/null
@@ -1,1896 +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/.
- *
- * 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 <com/sun/star/presentation/ClickAction.hpp>
-#include <vcl/svapp.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/msgbox.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl/combobox.hxx>
-#include <vcl/layout.hxx>
-#include <vcl/idle.hxx>
-#include <sfx2/doctempl.hxx>
-#include <svl/lstner.hxx>
-#include <sfx2/objsh.hxx>
-#include <svtools/ehdl.hxx>
-#include <svtools/sfxecode.hxx>
-#include <tools/urlobj.hxx>
-#include <com/sun/star/presentation/FadeEffect.hpp>
-#include <fadedef.h>
-#include <sfx2/sfxsids.hrc>
-#include <svl/undo.hxx>
-#include "DrawDocShell.hxx"
-#include <vcl/gdimtf.hxx>
-#include <tools/wintypes.hxx>
-#include "docprev.hxx"
-#include <sfx2/app.hxx>
-#include <sfx2/docfile.hxx>
-#include <sfx2/dispatch.hxx>
-#include <sfx2/request.hxx>
-#include <com/sun/star/sdbc/XResultSet.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/util/XCloseable.hpp>
-#include <com/sun/star/uno/RuntimeException.hpp>
-#include <com/sun/star/frame/XModuleManager.hpp>
-#include <com/sun/star/ucb/SimpleFileAccess.hpp>
-#include <com/sun/star/ui/theModuleUIConfigurationManagerSupplier.hpp>
-#include <com/sun/star/ui/XImageManager.hpp>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/frame/theUICommandDescription.hpp>
-#include <unotools/historyoptions.hxx>
-#include <osl/file.hxx>
-#include <sfx2/filedlghelper.hxx>
-
-#include "sdpage.hxx"
-#include "helpids.h"
-#include "assclass.hxx"
-#include "dlgass.hxx"
-#include "dlgctrls.hxx"
-#include "strings.hrc"
-#include "dlgassim.hxx"
-#include "TemplateScanner.hxx"
-#include "WindowUpdater.hxx"
-
-#include <comphelper/processfactory.hxx>
-#include <vector>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::sd;
-
-using ::std::vector;
-
-class PasswordEntry
-{
-public:
- uno::Sequence< beans::NamedValue > aEncryptionData;
- OUString maPath;
-};
-
-/** A simple wrapper that looks like a PushButton and is used to force the
- broadcasting of focus events primarily for accessibility tools.
- Forcing focus events is achieved by using two identical PushButtons
- which, when the focus event is requested, are exchanged and play focus
- ping-pong by moving the focus from one to the other.
-*/
-class NextButton
-{
-public:
- explicit NextButton (vcl::Window* pParent);
-
- void ForceFocusEventBroadcast();
- void SetClickHdl (const Link<Button*,void>& rLink);
- bool IsEnabled();
- void Enable (bool bEnable);
-
-private:
- VclPtr<PushButton> mpNextButton1;
- VclPtr<PushButton> mpNextButton2;
- bool mbIsFirstButtonActive;
-};
-
-class AssistentDlgImpl : public SfxListener
-{
-public:
- AssistentDlgImpl( vcl::Window* pWindow, const Link<ListBox&,void>& rFinishLink, bool bAutoPilot );
- virtual ~AssistentDlgImpl();
-
- /// Local mutex used to serialize concurrent method calls.
- ::osl::Mutex maMutex;
-
- SfxObjectShellLock GetDocument();
-
- /** closes the current preview docshell */
- void CloseDocShell();
-
- /** Extract form the history list of recently used files the impress
- files and insert them into a listbox.
- */
- void ScanDocmenu();
- /** Flag that is set to sal_True after the recently used files have been
- scanned.
- */
- bool mbRecentDocumentsReady;
-
- /** When the list of templates has not been scanned already this is done
- when this method is called. That includes requesting the whole list
- of templates from UCB and extracting from that list the impress
- templates and layouts and storing them for later use in
- <member>maPresentList</member>. Note that the first call to this
- method after installing a new Office may take some time.
- */
- void ProvideTemplates();
-
- /** This method transfers the template folders from the template scanner
- to the internal structures of this class. On termination it sets
- the flag <member>mbTemplatesReady</member> to <TRUE/> to indicate
- that the templates are available.
- @param rTemplateFolders
- This is a list of template folders. This method takes ownership
- of the supplied entries by removing them from the list and
- transferring them to an internal structure.
- */
- void TemplateScanDone (std::vector<TemplateDir*>& rTemplateFolders);
-
- /** Flag that is set to sal_True after the impress templates have been
- scanned.
- */
- bool mbTemplatesReady;
-
- /** Flag used to prevent nested or concurrent calls to the
- <member>UpdatePreview</member> method. A <TRUE/> value indicates
- that a preview update is currently active.
- */
- bool mbPreviewUpdating;
-
- VclPtr<vcl::Window> mpWindow;
-
- void SavePassword( const SfxObjectShellLock& xDoc, const OUString& rPath );
- void RestorePassword( SfxItemSet* pSet, const OUString& rPath );
- uno::Sequence < beans::NamedValue > GetPassword( const OUString& rPath );
- void DeletePasswords();
-
- std::vector< PasswordEntry > maPasswordList;
-
- OUString maDocFile;
- OUString maLayoutFile;
-
- OUString GetDocFileName();
- OUString GetLayoutFileName();
-
- /// List of URLs of recently used impress files.
- std::vector<OUString> maOpenFilesList;
-
- /// List of folders containing data about impress templates.
- std::vector<TemplateDir*> maPresentList;
-
- /// Currently selected template folder.
- TemplateDir* mpTemplateRegion;
-
- /// Currently selected layout folder.
- TemplateDir* mpLayoutRegion;
-
- // preview
- bool mbUserDataDirty;
- Idle maPrevIdle;
- Idle maEffectPrevIdle;
- Idle maUpdatePageListIdle;
-
- SfxObjectShellLock xDocShell;
-
- ::std::unique_ptr<WindowUpdater> mpWindowUpdater;
-
- bool mbPreview;
- sal_uInt16 mnShowPage;
- bool mbDocPreview;
-
- OUString maPageListFile;
-
- void UpdatePreview( bool bDocPreview );
- void UpdatePageList();
- void UpdateUserData();
-
- static bool IsOwnFormat( const OUString& rPath );
-
- // dlg status
- void EndDialog();
-
- void SetStartType( StartType eType );
- StartType GetStartType();
-
- void SelectTemplateRegion( const OUString& rRegion );
- void SelectLayoutRegion( const OUString& rRegion );
-
- void UpdatePage();
- void ChangePage();
- void LeavePage();
-
- static OUString GetUiTextForCommand (const OUString& aCommandURL);
- static Image GetUiIconForCommand (const OUString& aCommandURL);
-
- DECL_LINK_TYPED( SelectFileHdl, ListBox&, void );
- DECL_LINK_TYPED( SelectRegionHdl, ListBox&, void );
- DECL_LINK_TYPED( UpdatePreviewHdl, Idle *, void );
- DECL_LINK_TYPED( UpdatePageListHdl, Idle *, void );
- DECL_LINK_TYPED( StartTypeHdl, Button *, void );
- DECL_LINK_TYPED( SelectTemplateHdl, ListBox&, void);
- DECL_LINK_TYPED( NextPageHdl, Button*, void );
- DECL_LINK_TYPED( LastPageHdl, Button*, void );
- DECL_LINK_TYPED( PreviewFlagHdl, Button*, void );
- DECL_LINK_TYPED( EffectPreviewIdleHdl, Idle *, void );
- DECL_LINK_TYPED( EffectPreviewClickHdl, SdDocPreviewWin&, void );
- DECL_LINK_TYPED( SelectLayoutHdl, ListBox&, void );
- DECL_LINK_TYPED( PageSelectHdl, SvTreeListBox*, void );
- DECL_LINK_TYPED( PresTypeHdl, Button*, void );
- DECL_LINK_TYPED( UpdateUserDataHdl, Edit&, void );
- DECL_LINK_TYPED( SelectEffectHdl, ListBox&, void);
- DECL_LINK_TYPED( SelectVariantHdl, ListBox&, void);
- DECL_LINK_TYPED( SelectSpeedHdl, ListBox&, void);
- DECL_LINK_TYPED( OpenButtonHdl, Button *, void );
-
- OUString maCreateStr;
- OUString maOpenStr;
-
- // Common
- Assistent maAssistentFunc;
- VclPtr<CheckBox> mpPreviewFlag;
- VclPtr<CheckBox> mpStartWithFlag;
- VclPtr<PushButton> mpLastPageButton;
- NextButton* mpNextPageButton;
- VclPtr<PushButton> mpFinishButton;
- VclPtr<SdDocPreviewWin> mpPreview;
- VclPtr<VclContainer> mpPage1235;
-
- // page 1
- VclPtr<VclContainer> mpPage1;
- VclPtr<FixedImage> mpPage1FB;
- VclPtr<FixedText> mpPage1ArtFL;
- VclPtr<RadioButton> mpPage1EmptyRB;
- VclPtr<RadioButton> mpPage1TemplateRB;
- VclPtr<ListBox> mpPage1RegionLB;
- VclPtr<ListBox> mpPage1TemplateLB;
- VclPtr<RadioButton> mpPage1OpenRB;
- VclPtr<ListBox> mpPage1OpenLB;
- VclPtr<PushButton> mpPage1OpenPB;
-
- // page 2
- VclPtr<VclContainer> mpPage2;
- VclPtr<FixedImage> mpPage2FB;
- VclPtr<FixedText> mpPage2LayoutFL;
- VclPtr<ListBox> mpPage2RegionLB;
- VclPtr<ListBox> mpPage2LayoutLB;
- VclPtr<FixedText> mpPage2OutTypesFL;
- VclPtr<RadioButton> mpPage2Medium1RB;
- VclPtr<RadioButton> mpPage2Medium2RB;
- VclPtr<RadioButton> mpPage2Medium3RB;
- VclPtr<RadioButton> mpPage2Medium4RB;
- VclPtr<RadioButton> mpPage2Medium5RB;
- VclPtr<RadioButton> mpPage2Medium6RB;
-
- // page 3
- VclPtr<VclContainer> mpPage3;
- VclPtr<FixedImage> mpPage3FB;
- VclPtr<FixedText> mpPage3EffectFL;
- VclPtr<FixedText> mpPage3EffectFT;
- VclPtr<FadeEffectLB> mpPage3EffectLB;
- VclPtr<FixedText> mpPage3VariantFT;
- VclPtr<FixedText> mpPage3SpeedFT;
- VclPtr<ListBox> mpPage3VariantLB;
- VclPtr<ListBox> mpPage3SpeedLB;
- VclPtr<FixedText> mpPage3PresTypeFL;
- VclPtr<RadioButton> mpPage3PresTypeLiveRB;
- VclPtr<RadioButton> mpPage3PresTypeKioskRB;
- VclPtr<FixedText> mpPage3PresTimeFT;
- VclPtr<TimeField> mpPage3PresTimeTMF;
- VclPtr<FixedText> mpPage3BreakFT;
- VclPtr<TimeField> mpPage3BreakTMF;
- VclPtr<CheckBox> mpPage3LogoCB;
-
- // page 4
- VclPtr<VclContainer> mpPage4;
- VclPtr<FixedImage> mpPage4FB;
- VclPtr<FixedText> mpPage4PersonalFL;
- VclPtr<FixedText> mpPage4AskNameFT;
- VclPtr<Edit> mpPage4AskNameEDT;
- VclPtr<FixedText> mpPage4AskTopicFT;
- VclPtr<Edit> mpPage4AskTopicEDT;
- VclPtr<FixedText> mpPage4AskInfoFT;
- VclPtr<VclMultiLineEdit> mpPage4AskInfoEDT;
-
- // page 5
- VclPtr<VclContainer> mpPage5;
- VclPtr<FixedImage> mpPage5FB;
- VclPtr<FixedText> mpPage5PageListFT;
- VclPtr<SdPageListControl> mpPage5PageListCT;
- VclPtr<CheckBox> mpPage5SummaryCB;
-
-};
-
-AssistentDlgImpl::AssistentDlgImpl( vcl::Window* pWindow, const Link<ListBox&,void>& rFinishLink, bool bAutoPilot ) :
- mpTemplateRegion(nullptr),
- mpLayoutRegion(nullptr),
- mbUserDataDirty(false),
- xDocShell (nullptr),
- mpWindowUpdater (new WindowUpdater()),
- mbPreview(true),
- mnShowPage(0),
- mbDocPreview(false),
- maAssistentFunc(5)
-{
- AssistentDlg* assDlg = static_cast<AssistentDlg*>(pWindow);
- assDlg->get(mpPreviewFlag, "previewCheckbutton");
- assDlg->get(mpStartWithFlag, "startWithCheckbutton");
- assDlg->get(mpLastPageButton, "lastPageButton");
- assDlg->get(mpFinishButton, "finishButton");
- maCreateStr = mpFinishButton->GetText();
- maOpenStr = assDlg->get<PushButton>("open")->GetText();
- assDlg->get(mpPreview, "previewControl");
- assDlg->get(mpPage1235, "page1235Box");
- mpNextPageButton = new NextButton( pWindow );
-
- //Lock down the preferred size based on the
- //initial max-size configuration
- assDlg->get(mpPage1TemplateLB, "templatesTreeview");
- assDlg->get(mpPage1OpenLB, "openTreeview");
- long nHeight = mpPage1TemplateLB->GetTextHeight() * 7;
- mpPage1TemplateLB->set_height_request(nHeight);
- mpPage1OpenLB->set_height_request(nHeight);
-
- assDlg->get(mpPage1, "page1Box");
- assDlg->get(mpPage2, "page2Box");
- assDlg->get(mpPage3, "page3Box");
- assDlg->get(mpPage4, "page4Frame");
- assDlg->get(mpPage5, "page5Box");
- Size aSize(mpPage1->get_preferred_size());
- mpPage1->set_height_request(aSize.Height());
- mpPage2->set_height_request(aSize.Height());
- mpPage3->set_height_request(aSize.Height());
- mpPage4->set_height_request(aSize.Height());
- mpPage5->set_height_request(aSize.Height());
- mpPage1->set_width_request(aSize.Width());
- mpPage2->set_width_request(aSize.Width());
- mpPage3->set_width_request(aSize.Width());
- mpPage4->set_width_request(aSize.Width());
- mpPage5->set_width_request(aSize.Width());
-
- aSize = assDlg->get_preferred_size();
- assDlg->set_width_request(aSize.Width());
- assDlg->set_height_request(aSize.Height());
-
- maPageListFile = "?";
- mbRecentDocumentsReady = false;
- mbTemplatesReady = false;
- mbPreviewUpdating = false;
-
- mpWindow = pWindow;
-
- if (bAutoPilot)
- mpStartWithFlag->Hide();
- else
- maAssistentFunc.InsertControl(1, mpStartWithFlag );
-
- // initialize page1 and give it to the assistant functionality
- assDlg->get(mpPage1FB, "header1Image");
- assDlg->get(mpPage1ArtFL, "typeLabel");
- assDlg->get(mpPage1EmptyRB, "emptyRadiobutton");
- assDlg->get(mpPage1TemplateRB, "templateRadiobutton");
- assDlg->get(mpPage1OpenRB, "openRadiobutton");
- assDlg->get(mpPage1RegionLB, "regionCombobox");
- assDlg->get(mpPage1OpenPB, "openButton");
- maAssistentFunc.InsertControl(1, mpPage1 );
- maAssistentFunc.InsertControl(1, mpPage1235 );
- maAssistentFunc.InsertControl(1, mpPreview );
- maAssistentFunc.InsertControl(1, mpPreviewFlag );
- maAssistentFunc.InsertControl(1, mpPage1FB );
- maAssistentFunc.InsertControl(1, mpPage1ArtFL );
- maAssistentFunc.InsertControl(1, mpPage1EmptyRB);
- maAssistentFunc.InsertControl(1, mpPage1TemplateRB );
- maAssistentFunc.InsertControl(1, mpPage1OpenRB );
- maAssistentFunc.InsertControl(1, mpPage1RegionLB );
- maAssistentFunc.InsertControl(1, mpPage1TemplateLB );
- maAssistentFunc.InsertControl(1, mpPage1OpenPB );
- maAssistentFunc.InsertControl(1, mpPage1OpenLB );
-
- // Set text and icon of the 'Open...' button.
- {
- OUString sText (GetUiTextForCommand(".uno:Open"));
- // Remove the mnemonic and add a leading space so that icon and text
- // are not too close together.
- sText = sText.replaceAll("~", "");
- sText = " " + sText;
- mpPage1OpenPB->SetText(sText);
- // Place icon left of text and both centered in the button.
- mpPage1OpenPB->SetModeImage(
- GetUiIconForCommand(".uno:Open")
- );
- mpPage1OpenPB->EnableImageDisplay(true);
- mpPage1OpenPB->EnableTextDisplay(true);
- mpPage1OpenPB->SetImageAlign(ImageAlign::Left);
- mpPage1OpenPB->SetStyle(mpPage1OpenPB->GetStyle() | WB_CENTER);
- }
-
- // links&handler
- mpPage1RegionLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectRegionHdl));
- mpPage1RegionLB->SetDropDownLineCount( 6 );
- mpPage1TemplateLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectTemplateHdl));
- mpPage1TemplateLB->SetStyle(mpPage1TemplateLB->GetStyle() | WB_SORT);
- mpPage1TemplateLB->InsertEntry(SD_RESSTR(STR_ISLOADING));
-
- mpPage1EmptyRB->SetClickHdl(LINK(this,AssistentDlgImpl,StartTypeHdl));
- mpPage1TemplateRB->SetClickHdl(LINK(this,AssistentDlgImpl,StartTypeHdl));
- mpPage1OpenRB->SetClickHdl(LINK(this,AssistentDlgImpl,StartTypeHdl));
- mpPage1OpenLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectFileHdl));
- mpPage1OpenLB->SetDoubleClickHdl(rFinishLink);
- mpPage1OpenPB->SetClickHdl(LINK(this,AssistentDlgImpl,OpenButtonHdl));
-
- // page 2
- assDlg->get(mpPage2FB, "header2Image");
- assDlg->get(mpPage2LayoutFL, "layout2Label");
- assDlg->get(mpPage2RegionLB, "page2RegionCombobox");
- assDlg->get(mpPage2LayoutLB, "layoutTreeview");
- maAssistentFunc.InsertControl(2, mpPage2 );
- maAssistentFunc.InsertControl(2, mpPage1235 );
- maAssistentFunc.InsertControl(2, mpPreview );
- maAssistentFunc.InsertControl(2, mpPreviewFlag );
- maAssistentFunc.InsertControl(2, mpPage2FB );
- maAssistentFunc.InsertControl(2, mpPage2LayoutFL );
- maAssistentFunc.InsertControl(2, mpPage2RegionLB );
- maAssistentFunc.InsertControl(2, mpPage2LayoutLB );
-
- assDlg->get(mpPage2OutTypesFL, "outTypesLabel");
- assDlg->get(mpPage2Medium5RB, "medium5Radiobutton");
- assDlg->get(mpPage2Medium3RB, "medium3Radiobutton");
- assDlg->get(mpPage2Medium4RB, "medium4Radiobutton");
- assDlg->get(mpPage2Medium1RB, "medium1Radiobutton");
- assDlg->get(mpPage2Medium2RB, "medium2Radiobutton");
- assDlg->get(mpPage2Medium6RB, "medium6Radiobutton");
- maAssistentFunc.InsertControl(2, mpPage2OutTypesFL );
- maAssistentFunc.InsertControl(2, mpPage2Medium5RB );
- maAssistentFunc.InsertControl(2, mpPage2Medium3RB );
- maAssistentFunc.InsertControl(2, mpPage2Medium4RB );
- maAssistentFunc.InsertControl(2, mpPage2Medium1RB );
- maAssistentFunc.InsertControl(2, mpPage2Medium2RB );
- maAssistentFunc.InsertControl(2, mpPage2Medium6RB );
- mpPage2Medium5RB->Check();
-
- mpPage2RegionLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectRegionHdl));
- mpPage2RegionLB->SetDropDownLineCount( 6 );
- mpPage2LayoutLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectLayoutHdl));
- mpPage2LayoutLB->SetStyle(mpPage2LayoutLB->GetStyle() | WB_SORT);
- mpPage2LayoutLB->InsertEntry(SD_RESSTR(STR_ISLOADING));
-
- // page 3
- assDlg->get(mpPage3FB, "header3Image");
- assDlg->get(mpPage3EffectFL, "page3EffectLabel");
- assDlg->get(mpPage3EffectFT, "effectLabel");
- assDlg->get(mpPage3EffectLB, "effectCombobox");
- assDlg->get(mpPage3VariantFT, "variantLabel");
- assDlg->get(mpPage3VariantLB, "variantCombobox");
- assDlg->get(mpPage3SpeedFT, "speedLabel");
- assDlg->get(mpPage3SpeedLB, "speedCombobox");
- assDlg->get(mpPage3PresTypeFL, "presTypeLabel");
- assDlg->get(mpPage3PresTypeLiveRB, "liveRadiobutton");
- assDlg->get(mpPage3PresTypeKioskRB, "kioskRadiobutton");
- assDlg->get(mpPage3PresTimeFT, "presTimeLabel");
- assDlg->get(mpPage3PresTimeTMF, "timeSpinbutton");
- assDlg->get(mpPage3BreakFT, "breakLabel");
- assDlg->get(mpPage3BreakTMF, "breakSpinbutton");
- assDlg->get(mpPage3LogoCB, "logoCheckbutton");
-
- maAssistentFunc.InsertControl(3, mpPage3 );
- maAssistentFunc.InsertControl(3, mpPage1235 );
- maAssistentFunc.InsertControl(3, mpPreview );
- maAssistentFunc.InsertControl(3, mpPreviewFlag );
- maAssistentFunc.InsertControl(3, mpPage3FB );
- maAssistentFunc.InsertControl(3, mpPage3EffectFL );
- maAssistentFunc.InsertControl(3, mpPage3EffectFT );
- maAssistentFunc.InsertControl(3, mpPage3EffectLB );
- maAssistentFunc.InsertControl(3, mpPage3VariantFT );
- maAssistentFunc.InsertControl(3, mpPage3VariantLB );
- maAssistentFunc.InsertControl(3, mpPage3SpeedFT );
- maAssistentFunc.InsertControl(3, mpPage3SpeedLB );
- maAssistentFunc.InsertControl(3, mpPage3PresTypeFL );
- maAssistentFunc.InsertControl(3, mpPage3PresTypeLiveRB );
- maAssistentFunc.InsertControl(3, mpPage3PresTypeKioskRB );
- maAssistentFunc.InsertControl(3, mpPage3PresTimeFT );
- maAssistentFunc.InsertControl(3, mpPage3PresTimeTMF );
- maAssistentFunc.InsertControl(3, mpPage3BreakFT );
- maAssistentFunc.InsertControl(3, mpPage3BreakTMF );
- maAssistentFunc.InsertControl(3, mpPage3LogoCB );
-
- mpPage3EffectLB->Fill();
- mpPage3EffectLB->SetSelectHdl( LINK(this,AssistentDlgImpl,SelectEffectHdl ));
- mpPage3EffectLB->SetDropDownLineCount( 12 );
-
- mpPage3VariantLB->SetSelectHdl( LINK(this,AssistentDlgImpl,SelectVariantHdl ));
- mpPage3VariantLB->SetDropDownLineCount( 4 );
-
- mpPage3SpeedLB->InsertEntry( SD_RESSTR(STR_SLOW) );
- mpPage3SpeedLB->InsertEntry( SD_RESSTR(STR_MEDIUM) );
- mpPage3SpeedLB->InsertEntry( SD_RESSTR(STR_FAST) );
- mpPage3SpeedLB->SetDropDownLineCount( 3 );
- mpPage3SpeedLB->SetSelectHdl( LINK(this,AssistentDlgImpl,SelectSpeedHdl ));
- mpPage3SpeedLB->SelectEntryPos( 1 );
-
- mpPage3PresTypeLiveRB->Check();
- mpPage3PresTypeLiveRB->SetClickHdl( LINK(this,AssistentDlgImpl, PresTypeHdl ));
- mpPage3PresTypeKioskRB->SetClickHdl( LINK(this,AssistentDlgImpl, PresTypeHdl ));
- mpPage3PresTimeTMF->SetFormat( TimeFieldFormat::F_SEC );
- mpPage3PresTimeTMF->SetTime( ::tools::Time( 0, 0, 10 ) );
- mpPage3BreakTMF->SetFormat( TimeFieldFormat::F_SEC );
- mpPage3BreakTMF->SetTime( ::tools::Time( 0, 0, 10 ) );
- mpPage3LogoCB->Check();
-
- // set cursor in timefield
- Edit *pEditPage3PresTimeTMF = mpPage3PresTimeTMF->GetField();
- Edit *pEditPage3BreakTMF = mpPage3BreakTMF->GetField();
- Selection aSel1( pEditPage3PresTimeTMF->GetMaxTextLen(), pEditPage3PresTimeTMF->GetMaxTextLen() );
- Selection aSel2( pEditPage3BreakTMF->GetMaxTextLen(), pEditPage3BreakTMF->GetMaxTextLen() );
- pEditPage3PresTimeTMF->SetSelection( aSel1 );
- pEditPage3BreakTMF->SetSelection( aSel2 );
-
- // page 4
- assDlg->get(mpPage4FB, "header4Image");
- assDlg->get(mpPage4PersonalFL, "personalLabel");
- assDlg->get(mpPage4AskNameFT, "askNameLabel");
- assDlg->get(mpPage4AskNameEDT, "askNameEntry");
- assDlg->get(mpPage4AskTopicFT, "askTopicLabel");
- assDlg->get(mpPage4AskTopicEDT, "askTopicEntry");
- assDlg->get(mpPage4AskInfoFT, "askInfoLabel");
- assDlg->get(mpPage4AskInfoEDT, "askInformationTextview");
- maAssistentFunc.InsertControl(4, mpPage4 );
- maAssistentFunc.InsertControl(4, mpPage4FB );
- maAssistentFunc.InsertControl(4, mpPage4PersonalFL );
- maAssistentFunc.InsertControl(4, mpPage4AskNameFT );
- maAssistentFunc.InsertControl(4, mpPage4AskNameEDT );
- maAssistentFunc.InsertControl(4, mpPage4AskTopicFT);
- maAssistentFunc.InsertControl(4, mpPage4AskTopicEDT );
- maAssistentFunc.InsertControl(4, mpPage4AskInfoFT );
- maAssistentFunc.InsertControl(4, mpPage4AskInfoEDT );
-
- mpPage4AskNameEDT->SetModifyHdl(LINK(this,AssistentDlgImpl,UpdateUserDataHdl));
- mpPage4AskTopicEDT->SetModifyHdl(LINK(this,AssistentDlgImpl,UpdateUserDataHdl));
- mpPage4AskInfoEDT->SetModifyHdl(LINK(this,AssistentDlgImpl,UpdateUserDataHdl));
-
- // page 5
- assDlg->get(mpPage5FB, "header5Image");
- assDlg->get(mpPage5PageListFT, "pageListLabel");
- assDlg->get(mpPage5PageListCT, "TreeListBox");
- assDlg->get(mpPage5SummaryCB, "summaryCheckbutton");
- maAssistentFunc.InsertControl(5, mpPage5 );
- maAssistentFunc.InsertControl(5, mpPage1235 );
- maAssistentFunc.InsertControl(5, mpPreview );
- maAssistentFunc.InsertControl(5, mpPreviewFlag );
- maAssistentFunc.InsertControl(5, mpPage5FB );
- maAssistentFunc.InsertControl(5, mpPage5PageListFT );
- maAssistentFunc.InsertControl(5, mpPage5PageListCT );
- maAssistentFunc.InsertControl(5, mpPage5SummaryCB );
-
- mpPage5PageListCT->SetSelectHdl(LINK(this,AssistentDlgImpl, PageSelectHdl));
-
- // general
- mpLastPageButton->SetClickHdl(LINK(this,AssistentDlgImpl, LastPageHdl ));
- mpNextPageButton->SetClickHdl(LINK(this,AssistentDlgImpl, NextPageHdl ));
-
- mpPreviewFlag->Check( mbPreview );
- mpPreviewFlag->SetClickHdl(LINK(this, AssistentDlgImpl, PreviewFlagHdl ));
- mpPreview->SetClickHdl(LINK(this,AssistentDlgImpl, EffectPreviewClickHdl ));
-
- // sets the exit page
- maAssistentFunc.GotoPage(1);
- mpLastPageButton->Disable();
-
- maPrevIdle.SetPriority( SchedulerPriority::LOWER );
- maPrevIdle.SetIdleHdl( LINK( this, AssistentDlgImpl, UpdatePreviewHdl));
-
- maEffectPrevIdle.SetPriority( SchedulerPriority::MEDIUM );
- maEffectPrevIdle.SetIdleHdl( LINK( this, AssistentDlgImpl, EffectPreviewIdleHdl ));
-
- maUpdatePageListIdle.SetPriority( SchedulerPriority::MEDIUM );
- maUpdatePageListIdle.SetIdleHdl( LINK( this, AssistentDlgImpl, UpdatePageListHdl));
-
- SetStartType( ST_EMPTY );
-
- ChangePage();
-
- mpWindowUpdater->RegisterWindow (mpPreview);
-
- UpdatePreview( true );
-
- //check whether we should start with a template document initially and preselect it
- const OUString aServiceName( "com.sun.star.presentation.PresentationDocument" );
- OUString aStandardTemplate( SfxObjectFactory::GetStandardTemplate( aServiceName ) );
- if( !aStandardTemplate.isEmpty() )
- {
- ProvideTemplates();
-
- //find aStandardTemplate in maPresentList
- TemplateDir* pStandardTemplateDir = nullptr;
- TemplateEntry* pStandardTemplateEntry = nullptr;
-
- std::vector<TemplateDir*>::iterator I;
- for (I=maPresentList.begin(); I!=maPresentList.end(); ++I)
- {
- TemplateDir* pDir = *I;
- std::vector<TemplateEntry*>::iterator J;
- for (J=pDir->maEntries.begin(); J!=pDir->maEntries.end(); ++J)
- {
- TemplateEntry* pEntry = *J;
- if(pEntry->msPath == aStandardTemplate)
- {
- pStandardTemplateDir = pDir;
- pStandardTemplateEntry = pEntry;
- break;
- }
- }
- if(pStandardTemplateDir)
- break;
- }
-
- //preselect template
- if( pStandardTemplateDir && pStandardTemplateEntry )
- {
- mpPage1RegionLB->SelectEntry( pStandardTemplateDir->msRegion );
- SelectTemplateRegion( pStandardTemplateDir->msRegion );
- mpPage1TemplateLB->SelectEntry( pStandardTemplateEntry->msTitle );
- SelectTemplateHdl(*mpPage1TemplateLB);
- }
- }
-}
-
-AssistentDlgImpl::~AssistentDlgImpl()
-{
- //tdf#95620 we need to have mpPreview disposed before the DocShell is
- //destroyed, and not after. Because if the preview's slideshow is active
- //then the slideshow accesses the medium belonging to this DocShell in
- //its disposing.
- mpPreview.disposeAndClear();
-
- CloseDocShell();
-
- DeletePasswords();
-
- // Delete the template file infos.
- std::vector<TemplateDir*>::iterator I;
- std::vector<TemplateEntry*>::iterator J;
- for (I=maPresentList.begin(); I!=maPresentList.end(); ++I)
- {
- for (J=(*I)->maEntries.begin(); J!=(*I)->maEntries.end(); ++J)
- delete (*J);
- delete (*I);
- }
-}
-
-void AssistentDlgImpl::CloseDocShell()
-{
- if(xDocShell.Is())
- {
- uno::Reference< util::XCloseable > xCloseable( xDocShell->GetModel(), uno::UNO_QUERY );
- if( xCloseable.is() )
- {
- xCloseable->close( true );
- xDocShell = nullptr;
- }
- else
- {
- xDocShell->DoClose();
- xDocShell = nullptr;
- }
- }
-}
-
-void AssistentDlgImpl::EndDialog()
-{
- mpWindow = nullptr;
-}
-
-void AssistentDlgImpl::ScanDocmenu()
-{
- if( mbRecentDocumentsReady )
- return;
-
- uno::Sequence<uno::Sequence<beans::PropertyValue> > aHistory =
- SvtHistoryOptions().GetList (ePICKLIST);
-
- uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- uno::Reference< container::XNameAccess > xFilterFactory( xFactory->createInstance( "com.sun.star.document.FilterFactory" ), uno::UNO_QUERY );
-
- uno::Reference<ucb::XSimpleFileAccess3> xFileAccess(ucb::SimpleFileAccess::create(::comphelper::getProcessComponentContext()));
-
- sal_uInt32 nCount = aHistory.getLength();
- for (sal_uInt32 nItem=0; nItem<nCount; ++nItem)
- {
- // Get the current history item's properties.
- uno::Sequence<beans::PropertyValue> aPropertySet = aHistory[nItem];
- OUString sURL;
- OUString sFilter;
- OUString sTitle;
- OUString sPassword;
- sal_uInt32 nPropertyCount = aPropertySet.getLength();
- for (sal_uInt32 nProperty=0; nProperty<nPropertyCount; ++nProperty)
- if (aPropertySet[nProperty].Name == HISTORY_PROPERTYNAME_URL)
- aPropertySet[nProperty].Value >>= sURL;
- else if (aPropertySet[nProperty].Name == HISTORY_PROPERTYNAME_FILTER)
- aPropertySet[nProperty].Value >>= sFilter;
- else if (aPropertySet[nProperty].Name == HISTORY_PROPERTYNAME_TITLE)
- aPropertySet[nProperty].Value >>= sTitle;
- else if (aPropertySet[nProperty].Name == HISTORY_PROPERTYNAME_PASSWORD)
- aPropertySet[nProperty].Value >>= sPassword;
-
- // If the entry is an impress file then insert it into the
- // history list and the list box.
- uno::Sequence< beans::PropertyValue > lProps;
- if (xFilterFactory->hasByName(sFilter))
- {
- uno::Any aFilterPropSet = xFilterFactory->getByName( sFilter );
- aFilterPropSet >>= lProps;
- }
-
- sal_Int32 nPropCount = lProps.getLength();
- OUString sFactoryName;
- for( sal_Int32 i=0; i<nPropCount; ++i )
- {
- if( lProps[i].Name == "DocumentService" &&
- (lProps[i].Value >>= sFactoryName) &&
- sFactoryName == "com.sun.star.presentation.PresentationDocument" )
- {
- // yes, it's an impress document
- INetURLObject aURL;
-
- // Do not include the file if it does not exist.
- if (xFileAccess.is() && ! xFileAccess->exists(sURL))
- continue;
-
- aURL.SetSmartURL (sURL);
- // The password is set only when it is not empty.
- if (!sPassword.isEmpty())
- aURL.SetPass (sPassword);
- maOpenFilesList.push_back (aURL.GetMainURL(INetURLObject::NO_DECODE));
- mpPage1OpenLB->InsertEntry (sTitle);
- break;
- }
- }
- }
- mbRecentDocumentsReady = true;
- try
- {
- UpdatePreview(true);
- }
- catch (uno::RuntimeException& )
- {
- // Ignore all exceptions.
- }
-}
-
-void AssistentDlgImpl::ProvideTemplates()
-{
- if ( ! mbTemplatesReady)
- {
- TemplateScanner aScanner;
- aScanner.EnableEntrySorting();
- aScanner.Scan ();
- TemplateScanDone (aScanner.GetFolderList());
-
- try
- {
- UpdatePreview(true);
- }
- catch (uno::RuntimeException& )
- {
- // Ignore all exceptions.
- }
- }
-}
-
-void AssistentDlgImpl::TemplateScanDone (
- std::vector<TemplateDir*>& rTemplateFolder)
-{
- // This method is called from a thread. Therefore we get the solar mutex.
- SolarMutexGuard aGuard;
-
- // Copy the contents of the given template folders to a local list.
- maPresentList.swap (rTemplateFolder);
-
- // Fill in the list box on the first page.
- int nFirstEntry = 0;
- mpPage1RegionLB->Clear();
- std::vector<TemplateDir*>::iterator I;
- int i;
- for (i=0,I=maPresentList.begin(); I!=maPresentList.end(); ++I,++i)
- {
- TemplateDir* pDir = *I;
- if (pDir == nullptr)
- continue;
-
- // HACK! presnt directory is always initially selected.
- // We have to look at the first entry to get a URL.
- if (!pDir->maEntries.empty() )
- {
- TemplateEntry* pEntry = pDir->maEntries.front();
- if (pEntry != nullptr)
- if (pEntry->msPath.indexOf("presnt") != -1)
- nFirstEntry = i;
- }
-
- mpPage1RegionLB->InsertEntry (pDir->msRegion);
- }
- mpPage1RegionLB->SelectEntryPos ((sal_uInt16)nFirstEntry);
- mpPage1RegionLB->Update();
- SelectTemplateRegion (mpPage1RegionLB->GetSelectEntry());
-
- // Fill in the list box on the second page.
- nFirstEntry = 0;
- mpPage2RegionLB->Clear();
- for (i=0,I=maPresentList.begin(); I!=maPresentList.end(); ++I,++i)
- {
- TemplateDir* pDir = *I;
- if (pDir == nullptr)
- continue;
-
- // HACK! layout directory is always initially selected.
- // We have to look at the first entry to get a URL.
- if (!pDir->maEntries.empty() )
- {
- TemplateEntry* pEntry = pDir->maEntries.front();
- if (pEntry != nullptr)
- if (pEntry->msPath.indexOf("layout") != -1)
- nFirstEntry = i;
- }
-
- mpPage2RegionLB->InsertEntry (pDir->msRegion);
- }
- mpPage2RegionLB->SelectEntryPos ((sal_uInt16)nFirstEntry);
- mpPage2RegionLB->Update();
- SelectLayoutRegion (mpPage2RegionLB->GetSelectEntry());
-
- // Make the changes visible.
- mbTemplatesReady = true;
- if (mpWindow)
- UpdatePage();
-}
-
-// ********************************************************************
-// state methods
-// ********************************************************************
-
-void AssistentDlgImpl::SetStartType( StartType eType )
-{
- mpPage1EmptyRB->SetState( eType == ST_EMPTY );
- mpPage1TemplateRB->SetState( eType == ST_TEMPLATE );
- mpPage1OpenRB->SetState( eType == ST_OPEN );
- mpNextPageButton->Enable( eType != ST_OPEN );
-
- mpPage1RegionLB->Show(eType == ST_TEMPLATE);
- mpPage1TemplateLB->Show(eType == ST_TEMPLATE);
- mpPage1OpenLB->Show(eType == ST_OPEN);
- mpPage1OpenPB->Show(eType == ST_OPEN);
-
- if (eType == ST_OPEN)
- mpFinishButton->SetText(maOpenStr);
- else
- mpFinishButton->SetText(maCreateStr);
-}
-
-StartType AssistentDlgImpl::GetStartType()
-{
- if( mpPage1EmptyRB->IsChecked() )
- return ST_EMPTY;
- else if( mpPage1TemplateRB->IsChecked() )
- return ST_TEMPLATE;
- else
- return ST_OPEN;
-}
-
-OUString AssistentDlgImpl::GetDocFileName()
-{
- OUString aTitle;
- if(mpWindow)
- {
- aTitle = mpWindow->GetText();
- sal_Int32 nPos = aTitle.indexOf('(');
- if (nPos != -1)
- aTitle = aTitle.copy( 0, nPos-1 );
- }
-
- OUString aDocFile;
- if( GetStartType() == ST_TEMPLATE )
- {
- const sal_Int32 nEntry = mpPage1TemplateLB->GetSelectEntryPos();
- TemplateEntry* pEntry = nullptr;
- if (mpTemplateRegion && nEntry != LISTBOX_ENTRY_NOTFOUND)
- pEntry = mpTemplateRegion->maEntries[nEntry];
-
- if(pEntry)
- {
- aDocFile = pEntry->msPath;
-
- aTitle += " (";
- aTitle += pEntry->msTitle;
- aTitle += ")";
- }
- }
- else if( GetStartType() == ST_OPEN )
- {
- const sal_Int32 nEntry = mpPage1OpenLB->GetSelectEntryPos();
- if( nEntry != LISTBOX_ENTRY_NOTFOUND )
- aDocFile = maOpenFilesList[nEntry];
- }
-
- if(mpWindow)
- mpWindow->SetText(aTitle);
-
- return aDocFile;
-}
-
-OUString AssistentDlgImpl::GetLayoutFileName()
-{
- const sal_Int32 nEntry = mpPage2LayoutLB->GetSelectEntryPos();
- TemplateEntry* pEntry = nullptr;
- if(nEntry != LISTBOX_ENTRY_NOTFOUND && nEntry > 0)
- pEntry = mpLayoutRegion->maEntries[nEntry-1];
-
- if(pEntry)
- return pEntry->msPath;
-
- return OUString();
-}
-
-SfxObjectShellLock AssistentDlgImpl::GetDocument()
-{
- UpdatePreview(false); // but load completely
- UpdatePageList();
-
- SfxObjectShell* pShell = xDocShell;
- ::sd::DrawDocShell* pDocShell = dynamic_cast< ::sd::DrawDocShell *>( pShell );
- SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():nullptr;
-
- if(pDoc)
- {
- const sal_uInt16 nPageCount = pDoc->GetSdPageCount(PK_STANDARD);
- bool bKiosk = mpPage3PresTypeKioskRB->IsChecked();
- double fNewTime = (double)mpPage3PresTimeTMF->GetTime().GetMSFromTime() / 1000.0;
- if(bKiosk)
- {
- PresentationSettings& rSettings = pDoc->getPresentationSettings();
- rSettings.mbEndless = bKiosk;
- rSettings.mnPauseTimeout = (sal_Int32)mpPage3BreakTMF->GetTime().GetMSFromTime() / 1000;
- rSettings.mbShowPauseLogo = mpPage3LogoCB->IsChecked();
- }
-
- sal_uInt16 nPgAbsNum = 0;
- sal_uInt16 nPgRelNum = 0;
- while( nPgAbsNum < nPageCount )
- {
- SdPage* pPage = pDoc->GetSdPage( nPgRelNum, PK_STANDARD );
- if( mpPage5PageListCT->IsPageChecked(nPgAbsNum) )
- {
- mpPage3EffectLB->applySelected(pPage, *mpPage3VariantLB);
- const sal_Int32 nPos = mpPage3SpeedLB->GetSelectEntryPos();
- pPage->setTransitionDuration( (nPos == 0) ? 3.0 : (nPos == 1) ? 2.0 : 1.0 );
- if(bKiosk)
- {
- pPage->SetPresChange( PRESCHANGE_AUTO );
- pPage->SetTime(fNewTime);
- }
- nPgRelNum++;
- }
- else
- {
- // delete this page
- pDoc->DeletePage( (nPgRelNum << 1) + 2 ); // delete not page
- pDoc->DeletePage( (nPgRelNum << 1) + 1 ); // delete page
- }
-
- nPgAbsNum++;
- }
- }
- else
- {
- OSL_FAIL("sd::AssistentDlgImpl::GetDocument(), no template?");
- }
-
- SfxObjectShellLock xRet = xDocShell;
- xDocShell = nullptr;
-
- return xRet;
-}
-
-void AssistentDlgImpl::LeavePage()
-{
- int nPage = maAssistentFunc.GetCurrentPage();
-
- if( nPage == 4 && mbUserDataDirty )
- maPrevIdle.Start();
-}
-
-void AssistentDlgImpl::ChangePage()
-{
- mpNextPageButton->Enable(!maAssistentFunc.IsLastPage());
- mpLastPageButton->Enable(!maAssistentFunc.IsFirstPage());
-
- UpdatePage();
-
- if( mpNextPageButton->IsEnabled() )
- {
- mpNextPageButton->ForceFocusEventBroadcast();
- }
- else
- mpFinishButton->GrabFocus();
-}
-
-void AssistentDlgImpl::UpdatePage()
-{
- sal_uInt16 nPage = (sal_uInt16)maAssistentFunc.GetCurrentPage();
-
- switch(nPage)
- {
- case 1:
- {
- // Show elements on first page depending of start type
- SetStartType( GetStartType() );
- mpPage1TemplateRB->Enable(/*mbTemplatesReady*/);
- break;
- }
-
- case 2:
- {
- mpPage2RegionLB->Enable(mbTemplatesReady);
- mpPage2LayoutLB->Enable(mbTemplatesReady);
-
- if( GetStartType() != ST_EMPTY )
- {
- mpPage2Medium5RB->Enable();
- }
- else
- {
- mpPage2Medium5RB->Enable( false );
- if(mpPage2Medium5RB->IsChecked())
- mpPage2Medium1RB->Check();
- }
-
- break;
- }
- case 5:
- {
- if(mbDocPreview || maPageListFile != maDocFile)
- mpPage5PageListCT->Clear();
-
- maUpdatePageListIdle.Start();
- break;
- }
-
- case 3:
- {
- if(GetStartType() != ST_TEMPLATE)
- mpNextPageButton->Enable(false);
-
- bool bKiosk = mpPage3PresTypeKioskRB->IsChecked();
- mpPage3PresTimeFT->Enable(bKiosk);
- mpPage3BreakFT->Enable(bKiosk);
- mpPage3PresTimeTMF->Enable(bKiosk);
- mpPage3BreakTMF->Enable(bKiosk);
- mpPage3LogoCB->Enable(bKiosk);
- break;
- }
- }
-}
-
-// ********************************************************************
-// UI-Handler
-// ********************************************************************
-
-IMPL_LINK_TYPED( AssistentDlgImpl, SelectRegionHdl, ListBox&, rLB, void )
-{
- if( &rLB == mpPage1RegionLB )
- {
- SelectTemplateRegion( rLB.GetSelectEntry() );
- SetStartType( ST_TEMPLATE );
- mpPage2Medium5RB->Check();
- }
- else
- {
- SelectLayoutRegion( rLB.GetSelectEntry() );
- }
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, SelectEffectHdl, ListBox&, void)
-{
- maEffectPrevIdle.Start();
- mpPage3EffectLB->FillVariantLB(*mpPage3VariantLB);
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, SelectVariantHdl, ListBox&, void)
-{
- maEffectPrevIdle.Start();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, SelectSpeedHdl, ListBox&, void)
-{
- maEffectPrevIdle.Start();
-}
-
-IMPL_LINK_NOARG_TYPED( AssistentDlgImpl, OpenButtonHdl, Button*, void )
-{
- // Clear the selection and forward the call.
- mpPage1OpenLB->SetNoSelection();
- mpPage1OpenLB->GetDoubleClickHdl().Call(*mpPage1OpenLB);
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, EffectPreviewIdleHdl, Idle *, void)
-{
- if(mbPreview && xDocShell.Is() )
- {
- SfxObjectShell* pShell = xDocShell;
- DrawDocShell* pDocShell = dynamic_cast< DrawDocShell * >(pShell);
- if( pDocShell )
- {
- SdDrawDocument* pDoc = pDocShell->GetDoc();
- if( pDoc )
- {
- SdPage* pPage = pDoc->GetSdPage( mnShowPage, PK_STANDARD );
- if( pPage )
- mpPage3EffectLB->applySelected(pPage, *mpPage3VariantLB);
- }
- }
- mpPreview->startPreview();
- }
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, EffectPreviewClickHdl, SdDocPreviewWin&, void)
-{
- EffectPreviewIdleHdl(nullptr);
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, PreviewFlagHdl, Button*, void)
-{
- if( mpPreviewFlag->IsChecked() != mbPreview )
- {
- mbPreview = mpPreviewFlag->IsChecked();
- UpdatePreview(true);
- }
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, SelectTemplateHdl, ListBox&, void)
-{
- SetStartType( ST_TEMPLATE );
- mpPage2Medium5RB->Check();
- mpPage2LayoutLB->SelectEntryPos(0);
- maPrevIdle.Start();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, SelectLayoutHdl, ListBox&, void)
-{
- maPrevIdle.Start();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, SelectFileHdl, ListBox&, void)
-{
- SetStartType( ST_OPEN );
- maPrevIdle.Start();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, PageSelectHdl, SvTreeListBox*, void)
-{
- sal_uInt16 nPage = mpPage5PageListCT->GetSelectedPage();
- if( mnShowPage != nPage )
- {
- mnShowPage = nPage;
- UpdatePreview(false);
- }
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, UpdatePageListHdl, Idle *, void)
-{
- UpdatePageList();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, UpdatePreviewHdl, Idle *, void)
-{
- UpdatePreview( true );
-}
-
-IMPL_LINK_TYPED( AssistentDlgImpl, StartTypeHdl, Button *, pButton, void )
-{
- StartType eType = pButton == mpPage1EmptyRB ? ST_EMPTY : pButton == mpPage1TemplateRB ? ST_TEMPLATE:ST_OPEN;
-
- if(eType == ST_TEMPLATE)
- ProvideTemplates();
- else if(eType == ST_OPEN)
- ScanDocmenu();
-
- SetStartType( eType );
-
- if(eType == ST_TEMPLATE)
- {
- mpPage1TemplateLB->SelectEntryPos(0);
- mpPage2Medium5RB->Check();
- }
- else if(eType == ST_OPEN)
- mpPage1OpenLB->SelectEntryPos(0);
-
- maPrevIdle.Start();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, NextPageHdl, Button*, void)
-{
- // When changing from the first to the second page make sure that the
- // templates are present.
- if (maAssistentFunc.GetCurrentPage() == 1)
- ProvideTemplates();
-
- // Change to the next page.
- LeavePage();
- maAssistentFunc.NextPage();
- ChangePage();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, LastPageHdl, Button*, void)
-{
- LeavePage();
- maAssistentFunc.PreviousPage();
- ChangePage();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, PresTypeHdl, Button*, void)
-{
- if (maDocFile.isEmpty())
- {
- mpNextPageButton->Enable(false);
- }
-
- bool bKiosk = mpPage3PresTypeKioskRB->IsChecked();
- mpPage3PresTimeFT->Enable(bKiosk);
- mpPage3BreakFT->Enable(bKiosk);
- mpPage3PresTimeTMF->Enable(bKiosk);
- mpPage3BreakTMF->Enable(bKiosk);
- mpPage3LogoCB->Enable(bKiosk);
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlgImpl, UpdateUserDataHdl, Edit&, void)
-{
- mbUserDataDirty = true;
- OUString aTopic = mpPage4AskTopicEDT->GetText();
- OUString aName = mpPage4AskNameEDT->GetText();
- OUString aInfo = mpPage4AskInfoEDT->GetText();
-
- if (aTopic.isEmpty() && aName.isEmpty() && aInfo.isEmpty())
- maDocFile.clear();
-}
-
-// ********************************************************************
-// ********************************************************************
-
-void AssistentDlgImpl::SelectTemplateRegion( const OUString& rRegion )
-{
- mpPage1TemplateLB->Clear();
- std::vector<TemplateDir*>::iterator I;
- for (I=maPresentList.begin(); I!=maPresentList.end(); ++I)
- {
- TemplateDir * pDir = *I;
- mpTemplateRegion = *I;
- if (pDir->msRegion == rRegion)
- {
- std::vector<TemplateEntry*>::iterator J;
- for (J=pDir->maEntries.begin(); J!=pDir->maEntries.end(); ++J)
- mpPage1TemplateLB->InsertEntry ((*J)->msTitle);
- mpPage1TemplateLB->Update();
- if(GetStartType() == ST_TEMPLATE)
- {
- mpPage1TemplateLB->SelectEntryPos( 0 );
- SelectTemplateHdl(*mpPage1TemplateLB);
- }
- break;
- }
- }
-}
-
-void AssistentDlgImpl::SelectLayoutRegion( const OUString& rRegion )
-{
- mpPage2LayoutLB->Clear();
- mpPage2LayoutLB->InsertEntry(SD_RESSTR(STR_WIZARD_ORIGINAL));
- std::vector<TemplateDir*>::iterator I;
- for (I=maPresentList.begin(); I!=maPresentList.end(); ++I)
- {
- TemplateDir * pDir = *I;
- mpLayoutRegion = *I;
-
- if (pDir->msRegion == rRegion)
- {
- std::vector<TemplateEntry*>::iterator J;
- for (J=pDir->maEntries.begin(); J!=pDir->maEntries.end(); ++J)
- mpPage2LayoutLB->InsertEntry ((*J)->msTitle);
- mpPage2LayoutLB->Update();
- break;
- }
- }
-}
-
-void AssistentDlgImpl::UpdateUserData()
-{
- OUString aTopic = mpPage4AskTopicEDT->GetText();
- OUString aName = mpPage4AskNameEDT->GetText();
- OUString aInfo = mpPage4AskInfoEDT->GetText();
-
- SfxObjectShell* pShell = xDocShell;
- DrawDocShell* pDocShell = dynamic_cast< DrawDocShell *>( pShell );
- SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():nullptr;
- SdPage* pPage = pDoc?pDoc->GetSdPage(0, PK_STANDARD):nullptr;
-
- if (pPage && (!aTopic.isEmpty() || !aName.isEmpty() || !aInfo.isEmpty()))
- {
- if( pPage->GetAutoLayout() == AUTOLAYOUT_NONE )
- pPage->SetAutoLayout(AUTOLAYOUT_TITLE, true);
-
- SdrTextObj* pObj;
-
- if (!aTopic.isEmpty())
- {
- pObj = dynamic_cast<SdrTextObj*>( pPage->GetPresObj( PRESOBJ_TITLE ) );
- if( pObj )
- {
- pPage->SetObjText( pObj, nullptr, PRESOBJ_TITLE, aTopic );
- pObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE ), true );
- pObj->SetEmptyPresObj(false);
- }
-
- }
-
- if (!aName.isEmpty() || !aInfo.isEmpty())
- {
- OUString aStrTmp( aName );
- if (!aName.isEmpty())
- aStrTmp += "\n\n";
- aStrTmp += aInfo;
-
- pObj = dynamic_cast<SdrTextObj*>( pPage->GetPresObj( PRESOBJ_OUTLINE ) );
- if( pObj )
- {
- pPage->SetObjText( pObj, nullptr, PRESOBJ_OUTLINE, aStrTmp );
- pObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE ), true );
- pObj->SetEmptyPresObj(false);
- }
- else
- {
- pObj = dynamic_cast<SdrTextObj*>( pPage->GetPresObj( PRESOBJ_TEXT ) );
- if( pObj )
- {
- pPage->SetObjText( pObj, nullptr, PRESOBJ_TEXT, aStrTmp );
- pObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( PRESOBJ_TEXT ), true );
- pObj->SetEmptyPresObj(false);
- }
- }
- }
- }
-
- mbUserDataDirty = false;
-}
-
-void AssistentDlgImpl::UpdatePageList()
-{
- if(mbDocPreview || !mbPreview)
- UpdatePreview(false);
- else if(maPageListFile == maDocFile)
- return;
-
- maPageListFile = maDocFile;
-
- SfxObjectShell* pShell = xDocShell;
- DrawDocShell* pDocShell = dynamic_cast< DrawDocShell *>( pShell );
- SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():nullptr;
-
- mpPage5PageListCT->Clear();
-
- if(pDoc)
- mpPage5PageListCT->Fill(pDoc);
-}
-
-void AssistentDlgImpl::UpdatePreview( bool bDocPreview )
-{
- // Guard against multiple concurrent execution to this method caused either
- // by calls from different threads or recursion.
- ::osl::MutexGuard aGuard (maMutex);
- if (mbPreviewUpdating)
- return;
- mbPreviewUpdating = true;
-
- if(!mbPreview && bDocPreview)
- {
- mpPreview->Invalidate();
- mpPreview->SetObjectShell(nullptr);
- mbPreviewUpdating = false;
- return;
- }
-
- OUString aDocFile = GetDocFileName();
- OUString aLayoutFile = GetLayoutFileName();
-
- SfxApplication *pSfxApp = SfxGetpApp();
- sal_uLong lErr;
- bool bChangeMaster = !aLayoutFile.isEmpty();
-
- if (aDocFile.isEmpty())
- {
- if (!xDocShell.Is() || !maDocFile.isEmpty() ||
- (maDocFile.isEmpty() && !maLayoutFile.isEmpty() && aLayoutFile.isEmpty()))
- {
- CloseDocShell();
-
- DrawDocShell* pNewDocSh;
- xDocShell = pNewDocSh = new DrawDocShell(SfxObjectCreateMode::STANDARD, false);
- pNewDocSh->DoInitNew();
- SdDrawDocument* pDoc = pNewDocSh->GetDoc();
- pDoc->CreateFirstPages();
- pDoc->StopWorkStartupDelay();
- mbDocPreview = false;
-
- maDocFile = aDocFile;
- mbUserDataDirty = true;
- }
- else
- bChangeMaster = !aLayoutFile.isEmpty() && (maLayoutFile != aLayoutFile);
- }
- else if( aDocFile == maDocFile && ( mbDocPreview == bDocPreview || bDocPreview ) )
- {
- if( aLayoutFile != maLayoutFile )
- {
- SfxObjectShell* pShell = xDocShell;
- DrawDocShell* pDocShell = dynamic_cast< DrawDocShell *>( pShell );
- ::svl::IUndoManager* pUndoMgr = pDocShell?pDocShell->GetUndoManager():nullptr;
- if(pUndoMgr)
- pUndoMgr->Undo();
- mbUserDataDirty = true;
- }
- else
- bChangeMaster = false;
- }
- else
- {
- CloseDocShell();
-
- SfxErrorContext eEC(ERRCTX_SFX_LOADTEMPLATE,mpWindow);
-
- if(IsOwnFormat(aDocFile))
- {
- SfxItemSet* pSet = new SfxAllItemSet( pSfxApp->GetPool() );
- pSet->Put( SfxBoolItem( SID_TEMPLATE, true ) );
- if(bDocPreview)
- pSet->Put( SfxBoolItem( SID_PREVIEW, true ) );
- RestorePassword( pSet, aDocFile );
- if( (lErr = pSfxApp->LoadTemplate( xDocShell, aDocFile, pSet )) != 0 )
- ErrorHandler::HandleError(lErr);
- else
- SavePassword( xDocShell, aDocFile );
- }
- else
- {
- SfxRequest aReq( SID_OPENDOC, SfxCallMode::SYNCHRON, SfxGetpApp()->GetPool() );
- aReq.AppendItem( SfxStringItem( SID_FILE_NAME, aDocFile ));
- aReq.AppendItem( SfxStringItem( SID_REFERER, OUString() ) );
- aReq.AppendItem( SfxStringItem( SID_TARGETNAME, OUString("_default") ) );
- aReq.AppendItem( SfxBoolItem( SID_HIDDEN, true ) );
- aReq.AppendItem( SfxBoolItem( SID_PREVIEW, bDocPreview ) );
-
- const SfxViewFrameItem* pRet = dynamic_cast<const SfxViewFrameItem*>( SfxGetpApp()->ExecuteSlot( aReq ) );
-
- if ( pRet && pRet->GetFrame() && pRet->GetFrame()->GetObjectShell() )
- xDocShell = pRet->GetFrame()->GetObjectShell();
- }
-
- mnShowPage = 0;
- mbDocPreview = bDocPreview;
- maDocFile = aDocFile;
- mbUserDataDirty = true;
- }
-
- if(bChangeMaster && (aLayoutFile != maDocFile))
- {
- // load layout template
- SfxObjectShellLock xLayoutDocShell;
- SfxErrorContext eEC(ERRCTX_SFX_LOADTEMPLATE,mpWindow);
-
- if(IsOwnFormat(aLayoutFile))
- {
- SfxItemSet* pSet = new SfxAllItemSet( pSfxApp->GetPool() );
- pSet->Put( SfxBoolItem( SID_TEMPLATE, true ) );
- pSet->Put( SfxBoolItem( SID_PREVIEW, true ) );
-
- RestorePassword( pSet, aLayoutFile );
- if( (lErr = pSfxApp->LoadTemplate( xLayoutDocShell, aLayoutFile, pSet )) != 0 )
- ErrorHandler::HandleError(lErr);
- SavePassword( xLayoutDocShell, aLayoutFile );
- }
-
- // determine the implementation
- SfxObjectShell* pShell = xDocShell;
- DrawDocShell* pDocShell = dynamic_cast< DrawDocShell *>( pShell );
- SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():nullptr;
-
- pShell = xLayoutDocShell;
- pDocShell = dynamic_cast< DrawDocShell *>( pShell );
- SdDrawDocument* pLayoutDoc = pDocShell?pDocShell->GetDoc():nullptr;
-
- if( pDoc && pLayoutDoc )
- {
- pDoc->SetMasterPage(0, OUString(), pLayoutDoc, true, false );
- }
- else
- {
- OSL_FAIL("sd::AssistentDlgImpl::UpdatePreview(), no document for preview?");
- }
-
- mbUserDataDirty = true;
- }
- maLayoutFile = aLayoutFile;
-
- if(mbUserDataDirty)
- UpdateUserData();
-
- if ( !xDocShell.Is() || !mbPreview )
- mpPreview->SetObjectShell( nullptr );
- else
- {
- mpPreview->SetObjectShell( xDocShell, mnShowPage );
- }
-
- mbPreviewUpdating = false;
-}
-
-void AssistentDlgImpl::SavePassword( const SfxObjectShellLock& xDoc, const OUString& rPath )
-{
- if(xDoc.Is())
- {
- SfxMedium * pMedium = xDoc->GetMedium();
- if(pMedium && pMedium->IsStorage())
- {
- SfxItemSet * pSet = pMedium->GetItemSet();
- const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pSet, SID_ENCRYPTIONDATA, false);
- uno::Sequence < beans::NamedValue > aEncryptionData;
- if (pEncryptionDataItem)
- pEncryptionDataItem->GetValue() >>= aEncryptionData;
- else
- return;
- if( aEncryptionData.getLength() )
- {
-
- PasswordEntry* pEntry = nullptr;
- for (PasswordEntry& rEntry : maPasswordList)
- {
- if ( rEntry.maPath == rPath )
- {
- pEntry = &rEntry;
- break;
- }
- }
-
- if(pEntry == nullptr)
- {
- maPasswordList.push_back( PasswordEntry() );
- pEntry = &maPasswordList.back();
- pEntry->maPath = rPath;
- }
-
- pEntry->aEncryptionData = aEncryptionData;
- }
- }
- }
-}
-
-void AssistentDlgImpl::RestorePassword( SfxItemSet* pSet, const OUString& rPath )
-{
- uno::Sequence < beans::NamedValue > aEncryptionData( GetPassword( rPath ) );
-
- if(aEncryptionData.getLength())
- pSet->Put( SfxUnoAnyItem( SID_ENCRYPTIONDATA, uno::makeAny( aEncryptionData ) ) );
-}
-
-uno::Sequence < beans::NamedValue > AssistentDlgImpl::GetPassword( const OUString& rPath )
-{
- for (PasswordEntry & rEntry : maPasswordList)
- {
- if(rEntry.maPath == rPath)
- return rEntry.aEncryptionData;
- }
- return uno::Sequence < beans::NamedValue > ();
-}
-
-void AssistentDlgImpl::DeletePasswords()
-{
- maPasswordList.clear();
-}
-
-bool AssistentDlgImpl::IsOwnFormat( const OUString& rPath )
-{
- INetURLObject aURL( rPath );
- OUString aExt( aURL.GetFileExtension() );
-
- DBG_ASSERT( aURL.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
-
- return !aExt.equalsIgnoreAsciiCase( "ppt" );
-}
-
-OUString AssistentDlgImpl::GetUiTextForCommand (const OUString& sCommandURL)
-{
- OUString sLabel;
- Reference<container::XNameAccess> xUICommandLabels;
-
- try
- {
- do
- {
- if (sCommandURL.isEmpty())
- break;
-
- // Retrieve popup menu labels
- Reference<uno::XComponentContext> xContext( ::comphelper::getProcessComponentContext() );
- if ( ! xContext.is())
- break;
-
- Reference<container::XNameAccess> const xNameAccess(
- frame::theUICommandDescription::get(xContext) );
- Any a = xNameAccess->getByName(
- "com.sun.star.presentation.PresentationDocument");
- a >>= xUICommandLabels;
- if ( ! xUICommandLabels.is())
- break;
-
- OUString sString;
- Sequence<beans::PropertyValue> aProperties;
- Any aAny (xUICommandLabels->getByName(sCommandURL));
- if (aAny >>= aProperties)
- {
- sal_Int32 nCount (aProperties.getLength());
- for (sal_Int32 i=0; i<nCount; i++)
- {
- OUString sPropertyName (aProperties[i].Name);
- if ( sPropertyName == "Label" )
- {
- aProperties[i].Value >>= sString;
- break;
- }
- }
- }
- sLabel = sString;
- }
- while(false);
- }
- catch (css::uno::Exception& )
- {
- }
-
- return sLabel;
-}
-
-Image AssistentDlgImpl::GetUiIconForCommand (const OUString& sCommandURL)
-{
- Image aIcon;
- Reference<container::XNameAccess> xUICommandLabels;
-
- try
- {
- do
- {
- if (sCommandURL.isEmpty())
- break;
-
- // Retrieve popup menu labels
- Reference<uno::XComponentContext> xContext ( ::comphelper::getProcessComponentContext() );
- if ( ! xContext.is())
- break;
-
- Reference<ui::XModuleUIConfigurationManagerSupplier> xSupplier (
- ui::theModuleUIConfigurationManagerSupplier::get(xContext));
-
- Reference<css::ui::XUIConfigurationManager> xManager (
- xSupplier->getUIConfigurationManager(
- "com.sun.star.presentation.PresentationDocument"));
- if ( ! xManager.is())
- break;
-
- Reference<css::ui::XImageManager> xImageManager (
- xManager->getImageManager(),
- UNO_QUERY_THROW);
-
- Sequence<OUString> aCommandList { sCommandURL };
- Sequence<Reference<graphic::XGraphic> > xIconList (
- xImageManager->getImages(0,aCommandList));
- if ( ! xIconList.hasElements())
- break;
-
- aIcon = Image(Graphic(xIconList[0]).GetBitmapEx());
- }
- while(false);
- }
- catch (css::uno::Exception& )
- {
- }
-
- return aIcon;
-}
-
-AssistentDlg::AssistentDlg(vcl::Window* pParent, bool bAutoPilot) :
- ModalDialog(pParent, "Assistent", "modules/simpress/ui/assistentdialog.ui")
-{
- mpImpl = new AssistentDlgImpl( this, LINK(this,AssistentDlg, FinishHdl2), bAutoPilot );
-
- // button assignment
- mpImpl->mpFinishButton->SetClickHdl( LINK(this,AssistentDlg,FinishHdl) );
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlg, FinishHdl, Button*, void)
-{
- FinishHdl();
-}
-
-IMPL_LINK_NOARG_TYPED(AssistentDlg, FinishHdl2, ListBox&, void)
-{
- FinishHdl();
-}
-
-void AssistentDlg::FinishHdl()
-{
- if( GetStartType() == ST_OPEN )
- {
- //if we do not have a file here asked for one before ending the dialog
- OUString aFileToOpen = GetDocPath();
- if (aFileToOpen.isEmpty())
- {
- sfx2::FileDialogHelper aFileDlg(
- ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION, FileDialogFlags::NONE,
- OUString("simpress") );
-
- if ( aFileDlg.Execute() == ERRCODE_NONE )
- aFileToOpen = aFileDlg.GetPath();
- if (aFileToOpen.isEmpty())
- return;
- else
- {
- //add the selected file to the recent-file-listbox and select the new entry
- //this is necessary for 'GetDocPath()' returning the selected file after end of dialog
-
- INetURLObject aURL;
- aURL.SetSmartURL(aFileToOpen);
- mpImpl->maOpenFilesList.push_back (aURL.GetMainURL(INetURLObject::NO_DECODE));
- const sal_Int32 nNewPos = mpImpl->mpPage1OpenLB->InsertEntry(aURL.getName());
- mpImpl->mpPage1OpenLB->SelectEntryPos(nNewPos);
- }
- }
- }
-
- // end
- mpImpl->EndDialog();
- EndDialog(RET_OK);
-}
-
-AssistentDlg::~AssistentDlg()
-{
- disposeOnce();
-}
-
-void AssistentDlg::dispose()
-{
- delete mpImpl;
- ModalDialog::dispose();
-}
-
-SfxObjectShellLock AssistentDlg::GetDocument()
-{
- return mpImpl->GetDocument();
-}
-
-OutputType AssistentDlg::GetOutputMedium() const
-{
- if(mpImpl->mpPage2Medium1RB->IsChecked())
- return OUTPUT_PRESENTATION;
- else if(mpImpl->mpPage2Medium2RB->IsChecked())
- return OUTPUT_SLIDE;
- else if(mpImpl->mpPage2Medium3RB->IsChecked())
- return OUTPUT_OVERHEAD;
- else if(mpImpl->mpPage2Medium4RB->IsChecked())
- return OUTPUT_PAGE;
- else if(mpImpl->mpPage2Medium6RB->IsChecked())
- return OUTPUT_WIDESCREEN;
- else
- return OUTPUT_ORIGINAL;
-}
-
-bool AssistentDlg::IsSummary() const
-{
- return mpImpl->mpPage5SummaryCB->IsChecked();
-}
-
-StartType AssistentDlg::GetStartType() const
-{
- return mpImpl->GetStartType();
-}
-
-OUString AssistentDlg::GetDocPath() const
-{
- return mpImpl->GetDocFileName();
-}
-
-bool AssistentDlg::GetStartWithFlag() const
-{
- return !mpImpl->mpStartWithFlag->IsChecked();
-}
-
-bool AssistentDlg::IsDocEmpty() const
-{
- return mpImpl->GetDocFileName().isEmpty() &&
- mpImpl->GetLayoutFileName().isEmpty();
-}
-
-uno::Sequence< beans::NamedValue > AssistentDlg::GetPassword()
-{
- return mpImpl->GetPassword( mpImpl->maDocFile );
-}
-
-//===== NextButton ============================================================
-
-NextButton::NextButton (vcl::Window* pParent) :
- mbIsFirstButtonActive(true)
-{
- AssistentDlg* assDlg = static_cast<AssistentDlg*>(pParent);
- assDlg->get(mpNextButton1, "nextPage1Button");
- assDlg->get(mpNextButton2, "nextPage2Button");
- // Hide the unused button.
- mpNextButton2->Hide();
-}
-
-void NextButton::ForceFocusEventBroadcast()
-{
- // Hide the currently visible button and show and focus the other one.
- if (mbIsFirstButtonActive)
- {
- mbIsFirstButtonActive = false;
- mpNextButton2->Show();
- mpNextButton2->GrabFocus();
- mpNextButton1->Hide();
- }
- else
- {
- mbIsFirstButtonActive = true;
- mpNextButton1->Show();
- mpNextButton1->GrabFocus();
- mpNextButton2->Hide();
- }
-}
-
-void NextButton::SetClickHdl (const Link<Button*,void>& rLink)
-{
- // Forward the setting of the click handler to the two buttons
- // regardless of which one is currently visible.
- mpNextButton1->SetClickHdl(rLink);
- mpNextButton2->SetClickHdl(rLink);
-}
-
-bool NextButton::IsEnabled()
-{
- // Because the buttons are both either enabled or disabled, it is
- // sufficient to ask one to determine the state.
- return mpNextButton1->IsEnabled();
-}
-
-void NextButton::Enable (bool bEnable)
-{
- // Enable or disable both buttons but do not change visibility or focus.
- mpNextButton1->Enable(bEnable);
- mpNextButton2->Enable(bEnable);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/dlg/dlgassim.cxx b/sd/source/ui/dlg/dlgassim.cxx
deleted file mode 100644
index 7dc8d97238a5..000000000000
--- a/sd/source/ui/dlg/dlgassim.cxx
+++ /dev/null
@@ -1,210 +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/.
- *
- * 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 <sfx2/docfile.hxx>
-#include <unotools/pathoptions.hxx>
-
-#include "sdpage.hxx"
-#include "Outliner.hxx"
-#include "res_bmp.hrc"
-
-#include <vcl/svapp.hxx>
-#include <vcl/builderfactory.hxx>
-#include <o3tl/make_unique.hxx>
-#include "svtools/svlbitm.hxx"
-#include "svtools/treelistentry.hxx"
-
-#include "dlgassim.hxx"
-
-SdPageListControl::SdPageListControl(
- vcl::Window* pParent,
- const WinBits nStyle )
- : SvTreeListBox(pParent, nStyle)
-{
- // add lines to tree listbox
- SetStyle( GetStyle() | WB_TABSTOP | WB_BORDER | WB_HASLINES |
- WB_HASBUTTONS | WB_HASLINESATROOT |
- WB_HSCROLL |
- WB_HASBUTTONSATROOT );
-
- SetNodeDefaultImages ();
- m_pCheckButton = new SvLBoxButtonData(this);
- EnableCheckButton (m_pCheckButton);
-
- SetCheckButtonHdl( LINK(this,SdPageListControl,CheckButtonClickHdl) );
-}
-
-VCL_BUILDER_DECL_FACTORY(SdPageListControl)
-{
- WinBits nWinStyle = WB_TABSTOP;
- OString sBorder = VclBuilder::extractCustomProperty(rMap);
- if (!sBorder.isEmpty())
- nWinStyle |= WB_BORDER;
- rRet = VclPtr<SdPageListControl>::Create(pParent, nWinStyle);
-}
-
-IMPL_LINK_NOARG_TYPED(SdPageListControl, CheckButtonClickHdl, SvTreeListBox*, void)
-{
- SvTreeList* pTreeModel = GetModel();
- SvTreeListEntry* pEntry = pTreeModel->First();
-
- while( pEntry )
- {
- if(pTreeModel->IsAtRootDepth(pEntry) && GetCheckButtonState( pEntry ) == SvButtonState::Checked )
- return;
- pEntry = pTreeModel->Next( pEntry );
- }
-
- pEntry = pTreeModel->First();
- SetCheckButtonState( pEntry, SvButtonState::Checked );
-}
-
-SdPageListControl::~SdPageListControl()
-{
- disposeOnce();
-}
-
-void SdPageListControl::dispose()
-{
- delete m_pCheckButton;
- SvTreeListBox::dispose();
-}
-
-void SdPageListControl::Clear()
-{
- SvTreeListBox::Clear();
-}
-
-SvTreeListEntry* SdPageListControl::InsertPage( const OUString& rPageName )
-{
- SvTreeListEntry* pEntry = new SvTreeListEntry;
-
- pEntry->AddItem(o3tl::make_unique<SvLBoxButton>(SvLBoxButtonKind::EnabledCheckbox, m_pCheckButton));
- pEntry->AddItem(o3tl::make_unique<SvLBoxContextBmp>(Image(), Image(), false)); // otherwise boom!
- pEntry->AddItem(o3tl::make_unique<SvLBoxString>(rPageName));
-
- GetModel()->Insert( pEntry );
-
- return pEntry;
-}
-
-void SdPageListControl::InsertTitle( SvTreeListEntry* pParent, const OUString& rTitle )
-{
- SvTreeListEntry* pEntry = new SvTreeListEntry;
- pEntry->AddItem(o3tl::make_unique<SvLBoxString>(OUString()));
- pEntry->AddItem(o3tl::make_unique<SvLBoxContextBmp>(Image(), Image(), false)); // otherwise boom!
- pEntry->AddItem(o3tl::make_unique<SvLBoxString>(rTitle));
- GetModel()->Insert( pEntry,pParent );
-}
-
-void SdPageListControl::Fill( SdDrawDocument* pDoc )
-{
- Outliner* pOutliner = pDoc->GetInternalOutliner();
-
- sal_uInt16 nPage = 0;
- const sal_uInt16 nMaxPages = pDoc->GetPageCount();
- while( nPage < nMaxPages )
- {
- SdPage* pPage = static_cast<SdPage*>( pDoc->GetPage( nPage ) );
- if( pPage->GetPageKind() == PK_STANDARD )
- {
- SvTreeListEntry* pEntry = InsertPage( pPage->GetName() );
- SetCheckButtonState(pEntry, SvButtonState( SvButtonState::Checked ) );
-
- SdrTextObj* pTO = static_cast<SdrTextObj*>(pPage->GetPresObj(PRESOBJ_TEXT));
- if(!pTO)
- {
- // determines the SdrTextObject with the layout text of this page
- const size_t nObjectCount = pPage->GetObjCount();
- for (size_t nObject = 0; nObject < nObjectCount; ++nObject)
- {
- SdrObject* pObject = pPage->GetObj(nObject);
- if (pObject->GetObjInventor() == SdrInventor && pObject->GetObjIdentifier() == OBJ_OUTLINETEXT)
- {
- pTO = static_cast<SdrTextObj*>(pObject);
- break;
- }
- }
- }
-
- if (pTO && !pTO->IsEmptyPresObj())
- {
- OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject();
- if (pOPO)
- {
- pOutliner->Clear();
- pOutliner->SetText( *pOPO );
-
- sal_Int32 nCount = pOutliner->GetParagraphCount();
-
-
- for (sal_Int32 nPara = 0; nPara < nCount; nPara++)
- {
- Paragraph* pPara = pOutliner->GetParagraph(nPara);
- if(pPara && pOutliner->GetDepth( nPara ) == 0 )
- {
- OUString aParaText = pOutliner->GetText(pPara);
- if (!aParaText.isEmpty())
- InsertTitle( pEntry, aParaText );
- }
- }
- }
- }
- }
- nPage++;
- }
-
- pOutliner->Clear();
-}
-
-sal_uInt16 SdPageListControl::GetSelectedPage()
-{
- SvTreeListEntry* pSelEntry = GetCurEntry();
- sal_uInt16 nPage = 0;
-
- if ( pSelEntry )
- {
- SvTreeList* pTreeModel = GetModel();
- SvTreeListEntry* pEntry = pTreeModel->First();
-
- while( pEntry && pEntry != pSelEntry )
- {
- if(pTreeModel->IsAtRootDepth(pEntry))
- nPage++;
- pEntry = pTreeModel->Next( pEntry );
- }
-
- if(!pTreeModel->IsAtRootDepth(pSelEntry))
- nPage--;
- }
- return nPage;
-}
-
-bool SdPageListControl::IsPageChecked( sal_uInt16 nPage )
-{
- SvTreeListEntry* pEntry = GetModel()->GetEntry(nPage);
- return pEntry && (GetCheckButtonState( pEntry ) == SvButtonState::Checked);
-}
-
-void SdPageListControl::DataChanged( const DataChangedEvent& rDCEvt )
-{
- SvTreeListBox::DataChanged( rDCEvt );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/dlg/dlgassim.hxx b/sd/source/ui/dlg/dlgassim.hxx
deleted file mode 100644
index 6489762106df..000000000000
--- a/sd/source/ui/dlg/dlgassim.hxx
+++ /dev/null
@@ -1,56 +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/.
- *
- * 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_SD_SOURCE_UI_DLG_DLGASSIM_HXX
-#define INCLUDED_SD_SOURCE_UI_DLG_DLGASSIM_HXX
-
-#include "drawdoc.hxx"
-#include <svx/svdotext.hxx>
-#include <svtools/treelistbox.hxx>
-
-#include "sdresid.hxx"
-
-class SdPageListControl : public SvTreeListBox
-{
-private:
- SvLBoxButtonData* m_pCheckButton;
-
- SvTreeListEntry* InsertPage( const OUString& rPageName );
- void InsertTitle( SvTreeListEntry* pEntry, const OUString& rTitle );
-
-public:
- SdPageListControl( vcl::Window* pParent, const WinBits nStyle );
- virtual ~SdPageListControl();
- virtual void dispose() override;
-
- void Fill( SdDrawDocument* pDoc );
- void Clear();
-
- sal_uInt16 GetSelectedPage();
- bool IsPageChecked( sal_uInt16 nPage );
-
- DECL_LINK_TYPED( CheckButtonClickHdl, SvTreeListBox*, void );
-
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
-
-};
-
-#endif // INCLUDED_SD_SOURCE_UI_DLG_DLGASSIM_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/dlg/sddlgfact.cxx b/sd/source/ui/dlg/sddlgfact.cxx
index 9dfc4320c141..16efa6b75578 100644
--- a/sd/source/ui/dlg/sddlgfact.cxx
+++ b/sd/source/ui/dlg/sddlgfact.cxx
@@ -25,7 +25,6 @@
#include "custsdlg.hxx"
#include "dlg_char.hxx"
#include "dlgpage.hxx"
-#include "dlgass.hxx"
#include "dlgfield.hxx"
#include "dlgsnap.hxx"
#include "layeroptionsdlg.hxx"
@@ -53,7 +52,6 @@ IMPL_ABSTDLG_BASE(AbstractCopyDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdCustomShowDlg_Impl);
IMPL_ABSTDLG_BASE(SdAbstractTabDialog_Impl);
IMPL_ABSTDLG_BASE(SdPresLayoutTemplateDlg_Impl);
-IMPL_ABSTDLG_BASE(AbstractAssistentDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdModifyFieldDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdSnapLineDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdInsertLayerDlg_Impl);
@@ -188,46 +186,6 @@ OUString SdPresLayoutTemplateDlg_Impl::GetText() const
return pDlg->GetText();
}
-SfxObjectShellLock AbstractAssistentDlg_Impl::GetDocument()
-{
- return pDlg->GetDocument();
-}
-
-OutputType AbstractAssistentDlg_Impl::GetOutputMedium() const
-{
- return pDlg->GetOutputMedium();
-}
-
-bool AbstractAssistentDlg_Impl::IsSummary() const
-{
- return pDlg->IsSummary();
-}
-
-StartType AbstractAssistentDlg_Impl::GetStartType() const
-{
- return pDlg->GetStartType();
-}
-
-OUString AbstractAssistentDlg_Impl::GetDocPath() const
-{
- return pDlg->GetDocPath();
-}
-
-bool AbstractAssistentDlg_Impl::GetStartWithFlag() const
-{
- return pDlg->GetStartWithFlag();
-}
-
-bool AbstractAssistentDlg_Impl::IsDocEmpty() const
-{
- return pDlg->IsDocEmpty();
-}
-
-css::uno::Sequence< css::beans::NamedValue > AbstractAssistentDlg_Impl::GetPassword()
-{
- return pDlg->GetPassword();
-}
-
SvxFieldData* AbstractSdModifyFieldDlg_Impl::GetField()
{
return pDlg->GetField();
@@ -378,11 +336,6 @@ SfxAbstractTabDialog * SdAbstractDialogFactory_Impl::CreateSdTabPageDialog(vcl:
return new SdAbstractTabDialog_Impl( VclPtr<SdPageDlg>::Create( pDocShell, pParent, pAttr, bAreaPage ) );
}
-AbstractAssistentDlg * SdAbstractDialogFactory_Impl::CreateAssistentDlg(bool bAutoPilot)
-{
- return new AbstractAssistentDlg_Impl( VclPtr<AssistentDlg>::Create( nullptr, bAutoPilot ) );
-}
-
AbstractSdModifyFieldDlg * SdAbstractDialogFactory_Impl::CreateSdModifyFieldDlg( vcl::Window* pParent, const SvxFieldData* pInField, const SfxItemSet& rSet )
{
return new AbstractSdModifyFieldDlg_Impl( VclPtr<SdModifyFieldDlg>::Create( pParent, pInField, rSet ) );
diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx
index 1299598c5a22..9f203a1f092d 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -111,20 +111,6 @@ class SdPresLayoutTemplateDlg_Impl : public SfxAbstractTabDialog
virtual OUString GetText() const override;
};
-class AssistentDlg;
-class AbstractAssistentDlg_Impl : public AbstractAssistentDlg
-{
- DECL_ABSTDLG_BASE(AbstractAssistentDlg_Impl,AssistentDlg)
- virtual SfxObjectShellLock GetDocument() override;
- virtual OutputType GetOutputMedium() const override;
- virtual bool IsSummary() const override;
- virtual StartType GetStartType() const override;
- virtual OUString GetDocPath() const override;
- virtual bool GetStartWithFlag() const override;
- virtual bool IsDocEmpty() const override;
- virtual css::uno::Sequence< css::beans::NamedValue > GetPassword() override;
-};
-
class SdModifyFieldDlg;
class AbstractSdModifyFieldDlg_Impl : public AbstractSdModifyFieldDlg
{
@@ -225,7 +211,6 @@ public:
virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg(vcl::Window* pParent, SdDrawDocument& rDrawDoc) override;
virtual SfxAbstractTabDialog* CreateSdTabCharDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell) override;
virtual SfxAbstractTabDialog* CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage = true) override;
- virtual AbstractAssistentDlg* CreateAssistentDlg(bool bAutoPilot) override;
virtual AbstractSdModifyFieldDlg* CreateSdModifyFieldDlg( vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet ) override;
virtual AbstractSdSnapLineDlg* CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) override;
virtual AbstractSdInsertLayerDlg* CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override;
diff --git a/sd/source/ui/dlg/sduiexp.cxx b/sd/source/ui/dlg/sduiexp.cxx
index 84127950fcd2..a5012374d0d7 100644
--- a/sd/source/ui/dlg/sduiexp.cxx
+++ b/sd/source/ui/dlg/sduiexp.cxx
@@ -29,7 +29,6 @@
#include "layeroptionsdlg.hxx"
#include "dlgsnap.hxx"
#include "dlgfield.hxx"
-#include "dlgass.hxx"
#include "prltempl.hxx"
#include "custsdlg.hxx"
#include "copydlg.hxx"
diff --git a/sd/source/ui/inc/dlgass.hxx b/sd/source/ui/inc/dlgass.hxx
deleted file mode 100644
index 8fd3988cd6f1..000000000000
--- a/sd/source/ui/inc/dlgass.hxx
+++ /dev/null
@@ -1,65 +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/.
- *
- * 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_SD_SOURCE_UI_INC_DLGASS_HXX
-#define INCLUDED_SD_SOURCE_UI_INC_DLGASS_HXX
-
-#include <vcl/group.hxx>
-#include <vcl/edit.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/button.hxx>
-#include <vcl/dialog.hxx>
-#include <svtools/svmedit.hxx>
-#include "assclass.hxx"
-#include <vcl/lstbox.hxx>
-#include <sfx2/app.hxx>
-#include <com/sun/star/uno/Sequence.h>
-
-#include "sdenumdef.hxx"
-
-class AssistentDlgImpl;
-
-class AssistentDlg:public ModalDialog
-{
-private:
- AssistentDlgImpl* mpImpl;
-
-public:
- AssistentDlg(vcl::Window* pParent, bool bAutoPilot);
- virtual ~AssistentDlg();
- virtual void dispose() override;
-
- DECL_LINK_TYPED( FinishHdl, Button*, void );
- DECL_LINK_TYPED( FinishHdl2, ListBox&, void );
- void FinishHdl();
-
- SfxObjectShellLock GetDocument();
- OutputType GetOutputMedium() const;
- bool IsSummary() const;
- StartType GetStartType() const;
- OUString GetDocPath() const;
- bool GetStartWithFlag() const;
-
- bool IsDocEmpty() const;
- css::uno::Sequence< css::beans::NamedValue > GetPassword();
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/uiconfig/simpress/ui/assistentdialog.ui b/sd/uiconfig/simpress/ui/assistentdialog.ui
deleted file mode 100644
index e91c0d7b1e67..000000000000
--- a/sd/uiconfig/simpress/ui/assistentdialog.ui
+++ /dev/null
@@ -1,1296 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
-<interface>
- <requires lib="gtk+" version="3.0"/>
- <!-- interface-requires LibreOffice 1.0 -->
- <object class="GtkDialog" id="Assistent">
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="title" translatable="yes">Presentation Wizard</property>
- <property name="type_hint">dialog</property>
- <child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
- <child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="help">
- <property name="label">gtk-help</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="cancel">
- <property name="label">gtk-cancel</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="lastPageButton">
- <property name="label" translatable="yes">&lt;&lt; _Back</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="nextPage1Button">
- <property name="label" translatable="yes">_Next &gt;&gt;</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="nextPage2Button">
- <property name="label" translatable="yes">Next &gt;&gt;</property>
- <property name="use_action_appearance">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="finishButton">
- <property name="label" translatable="yes">_Create</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="open">
- <property name="label">gtk-open</property>
- <property name="use_action_appearance">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">6</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkBox" id="box8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkImage" id="header1Image">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="pixbuf">sd/res/dlgass1.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkImage" id="header2Image">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="pixbuf">sd/res/dlgass2.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkImage" id="header3Image">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="pixbuf">sd/res/dlgass3.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkImage" id="header4Image">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="pixbuf">sd/res/dlgass4.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkImage" id="header5Image">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="pixbuf">sd/res/dlgass5.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="page1235Box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkBox" id="box4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="page1Box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkFrame" id="frame1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkRadioButton" id="emptyRadiobutton">
- <property name="label" translatable="yes">_Empty presentation</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">templateRadiobutton</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="templateRadiobutton">
- <property name="label" translatable="yes">_From template</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">emptyRadiobutton</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="openRadiobutton">
- <property name="label" translatable="yes">O_pen existing presentation</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">emptyRadiobutton</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="regionCombobox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkTreeView" id="templatesTreeview:border">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="margin_top">6</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection"/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="openButton">
- <property name="label" translatable="yes">Open...</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">start</property>
- <property name="margin_left">12</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkTreeView" id="openTreeview:border">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
- <property name="margin_left">12</property>
- <property name="margin_top">6</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection1"/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">6</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="typeLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Type</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="page2Box">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkComboBox" id="page2RegionCombobox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkTreeView" id="layoutTreeview:border">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection2"/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="layout2Label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Select a Slide Design</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">page2RegionCombobox</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkRadioButton" id="medium5Radiobutton">
- <property name="label" translatable="yes">_Original</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">medium3Radiobutton</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>
- <child>
- <object class="GtkRadioButton" id="medium3Radiobutton">
- <property name="label" translatable="yes">O_verhead sheet</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">medium5Radiobutton</property>
- </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>
- <object class="GtkRadioButton" id="medium4Radiobutton">
- <property name="label" translatable="yes">P_aper</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">medium5Radiobutton</property>
- </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>
- <object class="GtkRadioButton" id="medium1Radiobutton">
- <property name="label" translatable="yes">Sc_reen</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">medium5Radiobutton</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="GtkRadioButton" id="medium2Radiobutton">
- <property name="label" translatable="yes">Sli_de</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">medium5Radiobutton</property>
- </object>
- <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>
- <child>
- <object class="GtkRadioButton" id="medium6Radiobutton">
- <property name="label" translatable="yes">W_idescreen</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">medium5Radiobutton</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="outTypesLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Select an Output Medium</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="page3Box">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkFrame" id="frame4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkGrid" id="grid2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="effectLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">_Effect:</property>
- <property name="use_underline">True</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>
- <child>
- <object class="GtkLabel" id="variantLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">_Variant:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">variantCombobox</property>
- </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>
- <object class="GtkLabel" id="speedLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">_Speed:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">speedCombobox</property>
- </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>
- <object class="sdlo-FadeEffectLB" id="effectCombobox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</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="GtkComboBox" id="variantCombobox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <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>
- <child>
- <object class="GtkComboBox" id="speedCombobox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="page3EffectLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Select a Slide Transition</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkRadioButton" id="liveRadiobutton">
- <property name="label" translatable="yes">_Default</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">kioskRadiobutton</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="kioskRadiobutton">
- <property name="label" translatable="yes">_Automatic</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">liveRadiobutton</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="grid3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="breakLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Du_ration of pause:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">breakSpinbutton:hh:mm</property>
- </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>
- <object class="GtkLabel" id="presTimeLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">D_uration of page:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">timeSpinbutton:hh:mm</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>
- <child>
- <object class="GtkSpinButton" id="timeSpinbutton:hh:mm">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="invisible_char">•</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="GtkSpinButton" id="breakSpinbutton:hh:mm">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="invisible_char">•</property>
- </object>
- <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="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="logoCheckbutton">
- <property name="label" translatable="yes">Sh_ow logo</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="presTypeLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Select the Presentation Type</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="page5Box">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="pageListLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Ch_oose your pages</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="sduilo-SdPageListControl" id="TreeListBox:border">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="Tree List-selection1"/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="summaryCheckbutton">
- <property name="label" translatable="yes">C_reate summary</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="sdlo-SdDocPreviewWin" id="previewControl:border">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="previewCheckbutton">
- <property name="label" translatable="yes">Previe_w</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="startWithCheckbutton">
- <property name="label" translatable="yes">_Do not show this wizard again</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="page4Frame">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="askNameLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">What is _your name or the name of your company?</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">askNameEntry</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="askNameEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="askTopicLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">What is _the subject of your presentation?</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">askTopicEntry</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="askTopicEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="askInfoLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Further ideas to be presented?</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">askInformationTextview:border</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTextView" id="askInformationTextview:border">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="personalLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Describe Your Basic Ideas</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="0">help</action-widget>
- <action-widget response="0">cancel</action-widget>
- <action-widget response="0">lastPageButton</action-widget>
- <action-widget response="0">nextPage1Button</action-widget>
- <action-widget response="0">nextPage2Button</action-widget>
- <action-widget response="0">finishButton</action-widget>
- <action-widget response="0">open</action-widget>
- </action-widgets>
- </object>
- <object class="GtkSizeGroup" id="sizegroup1">
- <property name="mode">both</property>
- <widgets>
- <widget name="page1Box"/>
- <widget name="page2Box"/>
- <widget name="page3Box"/>
- <widget name="page5Box"/>
- <widget name="page4Frame"/>
- </widgets>
- </object>
- <object class="GtkSizeGroup" id="sizegroup2">
- <property name="mode">both</property>
- <widgets>
- <widget name="page1Box"/>
- <widget name="page2Box"/>
- <widget name="page3Box"/>
- <widget name="page5Box"/>
- <widget name="page4Frame"/>
- </widgets>
- </object>
-</interface>
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index c0b478c5ffdb..907e4c8e56a4 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -1645,5 +1645,47 @@ void SfxTemplateCategoryDialog::HideNewCategoryOption()
mpNewCategoryEdit->Hide();
}
+// SfxTemplateSelectionDialog -----------------------------------------------------------------
+
+SfxTemplateSelectionDlg::SfxTemplateSelectionDlg(vcl::Window* pParent):
+ SfxTemplateManagerDlg(pParent),
+ msTemplatePath(OUString())
+{
+ mpCBApp->SelectEntryPos(MNI_IMPRESS);
+ mpCBApp->Disable();
+ mpCBFolder->SelectEntryPos(0);
+
+ if(mpLocalView->IsVisible())
+ {
+ mpLocalView->filterItems(ViewFilter_Application(getCurrentApplicationFilter()));
+ mpLocalView->showAllTemplates();
+ }
+
+ mpLocalView->setOpenTemplateHdl(LINK(this,SfxTemplateSelectionDlg, OpenTemplateHdl));
+ mpSearchView->setOpenTemplateHdl(LINK(this,SfxTemplateSelectionDlg, OpenTemplateHdl));
+}
+
+SfxTemplateSelectionDlg::~SfxTemplateSelectionDlg()
+{
+ disposeOnce();
+}
+
+void SfxTemplateSelectionDlg::dispose()
+{
+ SfxTemplateManagerDlg::dispose();
+}
+
+short SfxTemplateSelectionDlg::Execute()
+{
+ return ModalDialog::Execute();
+}
+
+IMPL_LINK_TYPED(SfxTemplateSelectionDlg, OpenTemplateHdl, ThumbnailViewItem*, pItem, void)
+{
+ TemplateViewItem *pViewItem = static_cast<TemplateViewItem*>(pItem);
+ msTemplatePath = pViewItem->getPath();
+
+ EndDialog(RET_OK);
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */