summaryrefslogtreecommitdiff
path: root/svx/source/inc/docrecovery.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/inc/docrecovery.hxx')
-rw-r--r--svx/source/inc/docrecovery.hxx973
1 files changed, 973 insertions, 0 deletions
diff --git a/svx/source/inc/docrecovery.hxx b/svx/source/inc/docrecovery.hxx
new file mode 100644
index 000000000000..b35b46a941aa
--- /dev/null
+++ b/svx/source/inc/docrecovery.hxx
@@ -0,0 +1,973 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SVX_DOCRECOVERY_HXX
+#define _SVX_DOCRECOVERY_HXX
+
+#include <vcl/tabpage.hxx>
+#ifndef _SV_TABDIALOG_HXX
+#include <vcl/tabdlg.hxx>
+#endif
+#include <vcl/dialog.hxx>
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#include <vcl/fixed.hxx>
+#include <svtools/svmedit2.hxx>
+#include <svtools/svtreebx.hxx>
+#include <svx/simptabl.hxx>
+
+#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/task/XStatusIndicatorFactory.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+
+//===============================================
+// const
+
+#define RECOVERY_CMDPART_PROTOCOL ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:")
+
+#define RECOVERY_CMDPART_DO_PREPARE_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("/doPrepareEmergencySave" )
+#define RECOVERY_CMDPART_DO_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("/doEmergencySave" )
+#define RECOVERY_CMDPART_DO_RECOVERY ::rtl::OUString::createFromAscii("/doAutoRecovery" )
+#define RECOVERY_CMDPART_DO_CRASHREPORT ::rtl::OUString::createFromAscii("/doCrashReport" )
+#define RECOVERY_CMDPART_DO_ENTRY_BACKUP ::rtl::OUString::createFromAscii("/doEntryBackup" )
+#define RECOVERY_CMDPART_DO_ENTRY_CLEANUP ::rtl::OUString::createFromAscii("/doEntryCleanUp" )
+
+#define RECOVERY_CMD_DO_PREPARE_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doPrepareEmergencySave")
+#define RECOVERY_CMD_DO_EMERGENCY_SAVE ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doEmergencySave" )
+#define RECOVERY_CMD_DO_RECOVERY ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doAutoRecovery" )
+#define RECOVERY_CMD_DO_CRASHREPORT ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doCrashReport" )
+#define RECOVERY_CMD_DO_ENTRY_BACKUP ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doEntryBackup" )
+#define RECOVERY_CMD_DO_ENTRY_CLEANUP ::rtl::OUString::createFromAscii("vnd.sun.star.autorecovery:/doEntryCleanUp" )
+
+#define SERVICENAME_PROGRESSFACTORY ::rtl::OUString::createFromAscii("com.sun.star.task.StatusIndicatorFactory")
+#define SERVICENAME_URLTRANSFORMER ::rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer" )
+#define SERVICENAME_RECOVERYCORE ::rtl::OUString::createFromAscii("com.sun.star.frame.AutoRecovery" )
+#define SERVICENAME_FOLDERPICKER ::rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.FolderPicker" )
+#define SERVICENAME_DESKTOP ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop" )
+
+#define PROP_PARENTWINDOW ::rtl::OUString::createFromAscii("Window" )
+#define PROP_STATUSINDICATOR ::rtl::OUString::createFromAscii("StatusIndicator" )
+#define PROP_DISPATCHASYNCHRON ::rtl::OUString::createFromAscii("DispatchAsynchron")
+#define PROP_SAVEPATH ::rtl::OUString::createFromAscii("SavePath" )
+#define PROP_ENTRYID ::rtl::OUString::createFromAscii("EntryID" )
+#define PROP_ALLOWPARENTSHOW ::rtl::OUString::createFromAscii("AllowParentShow" )
+
+#define STATEPROP_ID ::rtl::OUString::createFromAscii("ID" )
+#define STATEPROP_STATE ::rtl::OUString::createFromAscii("DocumentState")
+#define STATEPROP_ORGURL ::rtl::OUString::createFromAscii("OriginalURL" )
+#define STATEPROP_TEMPURL ::rtl::OUString::createFromAscii("TempURL" )
+#define STATEPROP_FACTORYURL ::rtl::OUString::createFromAscii("FactoryURL" )
+#define STATEPROP_TEMPLATEURL ::rtl::OUString::createFromAscii("TemplateURL" )
+#define STATEPROP_TITLE ::rtl::OUString::createFromAscii("Title" )
+#define STATEPROP_MODULE ::rtl::OUString::createFromAscii("Module" )
+
+#define RECOVERY_OPERATIONSTATE_START ::rtl::OUString::createFromAscii("start" )
+#define RECOVERY_OPERATIONSTATE_STOP ::rtl::OUString::createFromAscii("stop" )
+#define RECOVERY_OPERATIONSTATE_UPDATE ::rtl::OUString::createFromAscii("update")
+
+#define DLG_RET_UNKNOWN -1
+#define DLG_RET_OK 1
+#define DLG_RET_CANCEL 0
+#define DLG_RET_BACK 100
+#define DLG_RET_OK_AUTOLUNCH 101
+
+//===============================================
+// namespace
+
+namespace svx{
+ namespace DocRecovery{
+
+#ifdef css
+# error "Who uses css? I need it as temp. namespace alias!"
+#else
+# define css ::com::sun::star
+#endif
+
+//===============================================
+enum EDocStates
+{
+ /* TEMP STATES */
+
+ /// default state, if a document was new created or loaded
+ E_UNKNOWN = 0,
+ /// modified against the original file
+ E_MODIFIED = 1,
+ /// an active document can be postponed to be saved later.
+ E_POSTPONED = 2,
+ /// was already handled during one AutoSave/Recovery session.
+ E_HANDLED = 4,
+ /** an action was started (saving/loading) ... Can be interesting later if the process may be was interrupted by an exception. */
+ E_TRY_SAVE = 8,
+ E_TRY_LOAD_BACKUP = 16,
+ E_TRY_LOAD_ORIGINAL = 32,
+
+ /* FINAL STATES */
+
+ /// the Auto/Emergency saved document isnt useable any longer
+ E_DAMAGED = 64,
+ /// the Auto/Emergency saved document isnt realy up-to-date (some changes can be missing)
+ E_INCOMPLETE = 128,
+ /// the Auto/Emergency saved document was processed successfully
+ E_SUCCEDED = 512
+};
+
+//===============================================
+enum ERecoveryState
+{
+ E_SUCCESSFULLY_RECOVERED,
+ E_ORIGINAL_DOCUMENT_RECOVERED,
+ E_RECOVERY_FAILED,
+ E_RECOVERY_IS_IN_PROGRESS,
+ E_NOT_RECOVERED_YET
+};
+
+//===============================================
+struct TURLInfo
+{
+ public:
+
+ /// unique ID, which is specified by the underlying autorecovery core!
+ sal_Int32 ID;
+
+ /// the full qualified document URL
+ ::rtl::OUString OrgURL;
+
+ /// the full qualified URL of the temp. file (if it's exists)
+ ::rtl::OUString TempURL;
+
+ /// a may be existing factory URL (e.g. for untitled documents)
+ ::rtl::OUString FactoryURL;
+
+ /// may be the document base on a template file !?
+ ::rtl::OUString TemplateURL;
+
+ /// the pure file name, without path, disc etcpp.
+ ::rtl::OUString DisplayName;
+
+ /// the application module, where this document was loaded
+ ::rtl::OUString Module;
+
+ /// state info as e.g. VALID, CORRUPTED, NON EXISTING ...
+ sal_Int32 DocState;
+
+ /// ui representation for DocState!
+ ERecoveryState RecoveryState;
+
+ /// standard icon
+ Image StandardImage;
+
+ /// high contrast icon
+ Image HCImage;
+
+ public:
+
+ TURLInfo()
+ : ID (-1 )
+ , DocState (E_UNKNOWN )
+ , RecoveryState(E_NOT_RECOVERED_YET)
+ {}
+};
+
+//===============================================
+typedef ::std::vector< TURLInfo > TURLList;
+
+//===============================================
+class IRecoveryUpdateListener
+{
+ public:
+
+ // inform listener about changed items, which should be refreshed
+ virtual void updateItems() = 0;
+
+ // inform listener about starting of the asynchronous recovery operation
+ virtual void start() = 0;
+
+ // inform listener about ending of the asynchronous recovery operation
+ virtual void end() = 0;
+
+ // TODO
+ virtual void stepNext(TURLInfo* pItem) = 0;
+};
+
+//===============================================
+class RecoveryCore : public ::cppu::WeakImplHelper1< css::frame::XStatusListener >
+{
+ //-------------------------------------------
+ // types, const
+ public:
+
+ //-------------------------------------------
+ // member
+ private:
+
+ /// TODO
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ /// TODO
+ css::uno::Reference< css::frame::XDispatch > m_xRealCore;
+
+ /// TODO
+ css::uno::Reference< css::task::XStatusIndicator > m_xProgress;
+
+ /// TODO
+ TURLList m_lURLs;
+
+ /// TODO
+ IRecoveryUpdateListener* m_pListener;
+
+ /** @short knows the reason, why we listen on our internal m_xRealCore
+ member.
+
+ @descr Because we listen for different operations
+ on the core dispatch implementation, we must know,
+ which URL we have to use for deregistration!
+ */
+ sal_Bool m_bListenForSaving;
+
+ //-------------------------------------------
+ // native interface
+ public:
+
+ //---------------------------------------
+ /** @short TODO */
+ RecoveryCore(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+ sal_Bool bUsedForSaving);
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual ~RecoveryCore();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual css::uno::Reference< css::lang::XMultiServiceFactory > getSMGR();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual TURLList* getURLListAccess();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual sal_Bool existsBrokenTempEntries();
+ virtual sal_Bool existsNonRecoveredEntries();
+ static sal_Bool isBrokenTempEntry(const TURLInfo& rInfo);
+ virtual void saveBrokenTempEntries(const ::rtl::OUString& sSaveDir);
+ virtual void saveAllTempEntries(const ::rtl::OUString& sSaveDir);
+ virtual void forgetBrokenTempEntries();
+ virtual void forgetAllRecoveryEntries();
+ void forgetBrokenRecoveryEntries();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual void setProgressHandler(const css::uno::Reference< css::task::XStatusIndicator >& xProgress);
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual void setUpdateListener(IRecoveryUpdateListener* pListener);
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual void doEmergencySavePrepare();
+ virtual void doEmergencySave();
+ virtual void doRecovery();
+
+ //---------------------------------------
+ /** @short TODO */
+ static ERecoveryState mapDocState2RecoverState(sal_Int32 eDocState);
+
+ //-------------------------------------------
+ // uno interface
+ public:
+
+ // css.frame.XStatusListener
+ virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& aEvent)
+ throw(css::uno::RuntimeException);
+
+ // css.lang.XEventListener
+ virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
+ throw(css::uno::RuntimeException);
+
+ //-------------------------------------------
+ // helper
+ private:
+
+ //---------------------------------------
+ /** @short starts listening on the internal EmergencySave/AutoRecovery core.
+ */
+ void impl_startListening();
+
+ //---------------------------------------
+ /** @short stop listening on the internal EmergencySave/AutoRecovery core.
+ */
+ void impl_stopListening();
+
+ //---------------------------------------
+ /** @short TODO */
+ css::util::URL impl_getParsedURL(const ::rtl::OUString& sURL);
+};
+
+//===============================================
+class PluginProgressWindow : public Window
+{
+ private:
+
+ css::uno::Reference< css::lang::XComponent > m_xProgress;
+
+ public:
+
+ PluginProgressWindow( Window* pParent ,
+ const css::uno::Reference< css::lang::XComponent >& xProgress);
+ ~PluginProgressWindow();
+};
+
+class PluginProgress : public ::cppu::WeakImplHelper2< css::task::XStatusIndicator ,
+ css::lang::XComponent >
+{
+
+ //-------------------------------------------
+ // member
+ private:
+
+ /** @short TODO */
+ css::uno::Reference< css::task::XStatusIndicatorFactory > m_xProgressFactory;
+
+ css::uno::Reference< css::task::XStatusIndicator > m_xProgress;
+
+ PluginProgressWindow* m_pPlugProgressWindow;
+
+ //-------------------------------------------
+ // native interface
+ public:
+
+ //---------------------------------------
+ /** @short TODO */
+ PluginProgress( Window* pParent,
+ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR );
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual ~PluginProgress();
+
+ //---------------------------------------
+ /** @short TODO */
+ Window* getPlugWindow();
+
+ //-------------------------------------------
+ // uno interface
+ public:
+
+ //---------------------------------------
+ // XStatusIndicator
+ virtual void SAL_CALL start(const ::rtl::OUString& sText ,
+ sal_Int32 nRange)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL end()
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL setText(const ::rtl::OUString& sText)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL setValue(sal_Int32 nValue)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL reset()
+ throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XComponent
+ virtual void SAL_CALL dispose()
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener >& xListener)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener)
+ throw(css::uno::RuntimeException);
+};
+
+//===============================================
+class IExtendedTabPage : public TabPage
+{
+ //-------------------------------------------
+ // member
+ protected:
+
+ short m_nResult;
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ IExtendedTabPage( Window* pParent, WinBits nStyle = 0 )
+ : TabPage( pParent, nStyle )
+ , m_nResult(DLG_RET_UNKNOWN)
+ {}
+
+ IExtendedTabPage( Window* pParent, const ResId& rResId )
+ : TabPage( pParent, rResId )
+ , m_nResult(DLG_RET_UNKNOWN)
+ {}
+
+ virtual ~IExtendedTabPage()
+ {}
+
+ virtual short execute() = 0;
+ virtual void setDefButton() = 0;
+};
+
+typedef ::std::vector< IExtendedTabPage* > TTabPageList;
+
+//===============================================
+class TabDialog4Recovery : public TabDialog
+{
+ //-------------------------------------------
+ // member
+ private:
+
+ TTabPageList m_lTabPages;
+ TTabPageList::iterator m_pActualPage;
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ TabDialog4Recovery(Window* pParent);
+ virtual ~TabDialog4Recovery();
+
+ virtual void addTabPage(IExtendedTabPage* pPage);
+ virtual short Execute();
+};
+
+//===============================================
+class SaveDialog : public IExtendedTabPage
+{
+ //-------------------------------------------
+ // member
+ private:
+
+ Window m_aTitleWin;
+ FixedText m_aTitleFT;
+ FixedLine m_aTitleFL;
+ FixedText m_aDescrFT;
+ FixedText m_aFileListFT;
+ ListBox m_aFileListLB;
+ FixedLine m_aBottomFL;
+ OKButton m_aOkBtn;
+
+ RecoveryCore* m_pCore;
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ //---------------------------------------
+ /** @short create all child controls of this dialog.
+
+ @descr The dialog isnt shown nor it starts any
+ action by itself!
+
+ @param pParent
+ can point to a parent window.
+ If its set to 0, the defmodal-dialog-parent
+ is used automaticly.
+
+ @param pCore
+ provides access to the recovery core service
+ and the current list of open documents,
+ which should be shown inside this dialog.
+ */
+ SaveDialog(Window* pParent,
+ RecoveryCore* pCore );
+
+ //---------------------------------------
+ /** @short free all controls and used memory. */
+ virtual ~SaveDialog();
+
+ //---------------------------------------
+ /** @short TODO*/
+ virtual short execute();
+
+ //---------------------------------------
+ /** @short TODO*/
+ virtual void setDefButton();
+
+ DECL_LINK(OKButtonHdl, void*);
+};
+
+//===============================================
+class SaveProgressDialog : public ModalDialog
+ , public IRecoveryUpdateListener
+{
+ //-------------------------------------------
+ // member
+ private:
+
+ FixedText m_aHintFT;
+ FixedText m_aProgrFT;
+ String m_aProgrBaseTxt;
+ Window m_aProgrParent;
+
+ // @short TODO
+ RecoveryCore* m_pCore;
+
+ // @short TODO
+ css::uno::Reference< css::task::XStatusIndicator > m_xProgress;
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ //---------------------------------------
+ /** @short create all child controls of this dialog.
+
+ @descr The dialog isnt shown nor it starts any
+ action by itself!
+
+ @param pParent
+ can point to a parent window.
+ If its set to 0, the defmodal-dialog-parent
+ is used automaticly.
+
+ @param pCore
+ used to start emegrency save.
+ */
+ SaveProgressDialog(Window* pParent,
+ RecoveryCore* pCore );
+
+ //---------------------------------------
+ /** @short free all controls and used memory. */
+ virtual ~SaveProgressDialog();
+
+ //---------------------------------------
+ /** @short start the emergency save operation. */
+ virtual short Execute();
+
+ // IRecoveryUpdateListener
+ virtual void updateItems();
+ virtual void stepNext(TURLInfo* pItem);
+ virtual void start();
+ virtual void end();
+};
+
+//===============================================
+class RecovDocListEntry : public SvLBoxString
+{
+ //-------------------------------------------
+ // interface
+ private:
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ //---------------------------------------
+ /** @short TODO */
+ RecovDocListEntry( SvLBoxEntry* pEntry,
+ USHORT nFlags,
+ const String& sText );
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual void Paint(const Point& aPos ,
+ SvLBox& aDevice,
+ USHORT nFlags ,
+ SvLBoxEntry* pEntry );
+};
+
+//===============================================
+class RecovDocList : public SvxSimpleTable
+{
+ //-------------------------------------------
+ // member
+ public:
+
+ Image m_aGreenCheckImg;
+ Image m_aYellowCheckImg;
+ Image m_aRedCrossImg;
+ Image m_aGreenCheckImgHC;
+ Image m_aYellowCheckImgHC;
+ Image m_aRedCrossImgHC;
+
+ String m_aSuccessRecovStr;
+ String m_aOrigDocRecovStr;
+ String m_aRecovFailedStr;
+ String m_aRecovInProgrStr;
+ String m_aNotRecovYetStr;
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ //---------------------------------------
+ /** @short TODO */
+ RecovDocList( Window* pParent,
+ const ResId& rResId );
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual ~RecovDocList();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual void InitEntry( SvLBoxEntry* pEntry ,
+ const XubString& sText ,
+ const Image& aImage1,
+ const Image& aImage2,
+ SvLBoxButtonKind eButtonKind);
+};
+
+//===============================================
+class RecoveryDialog : public IExtendedTabPage
+ , public IRecoveryUpdateListener
+{
+ //-------------------------------------------
+ // member
+ private:
+ Window m_aTitleWin;
+ FixedText m_aTitleFT;
+ FixedLine m_aTitleFL;
+ FixedText m_aDescrFT;
+ FixedText m_aProgressFT;
+ Window m_aProgrParent;
+ FixedText m_aFileListFT;
+ RecovDocList m_aFileListLB;
+ FixedLine m_aBottomFL;
+ PushButton m_aNextBtn;
+ CancelButton m_aCancelBtn;
+ String m_aNextStr;
+ String m_aTitleRecoveryInProgress;
+ String m_aTitleRecoveryReport;
+ String m_aRecoveryOnlyFinish;
+ String m_aRecoveryOnlyFinishDescr;
+
+ PushButton* m_pDefButton;
+ RecoveryCore* m_pCore;
+ css::uno::Reference< css::task::XStatusIndicator > m_xProgress;
+ enum EInternalRecoveryState
+ {
+ E_RECOVERY_PREPARED, // dialog started ... recovery prepared
+ E_RECOVERY_IN_PROGRESS, // recovery core still in progress
+ E_RECOVERY_CORE_DONE, // recovery core finished it's task
+ E_RECOVERY_DONE, // user clicked "next" button
+ E_RECOVERY_CANCELED, // user clicked "cancel" button
+ E_RECOVERY_CANCELED_BEFORE, // user clicked "cancel" button before recovery was started
+ E_RECOVERY_CANCELED_AFTERWARDS, // user clicked "cancel" button after reovery was finished
+ E_RECOVERY_HANDLED // the recovery wizard page was shown already ... and will be shown now again ...
+ };
+ sal_Int32 m_eRecoveryState;
+ sal_Bool m_bWaitForUser;
+ sal_Bool m_bWaitForCore;
+ sal_Bool m_bUserDecideNext;
+ sal_Bool m_bWasRecoveryStarted;
+ sal_Bool m_bRecoveryOnly;
+
+ //-------------------------------------------
+ // member
+ public:
+
+ //---------------------------------------
+ /** @short TODO */
+ RecoveryDialog(Window* pParent,
+ RecoveryCore* pCore );
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual ~RecoveryDialog();
+
+ //---------------------------------------
+ // IRecoveryUpdateListener
+ virtual void updateItems();
+ virtual void stepNext(TURLInfo* pItem);
+ virtual void start();
+ virtual void end();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual short execute();
+
+ //---------------------------------------
+ /** @short TODO*/
+ virtual void setDefButton();
+
+ //-------------------------------------------
+ // helper
+ private:
+
+ //---------------------------------------
+ /** @short TODO */
+ DECL_LINK(NextButtonHdl, void*);
+ DECL_LINK(CancelButtonHdl, void*);
+
+ //---------------------------------------
+ /** @short TODO */
+ void impl_refreshDocList();
+
+ //---------------------------------------
+ /** @short TODO */
+ String impl_getStatusString( const TURLInfo& rInfo ) const;
+};
+
+//===============================================
+class BrokenRecoveryDialog : public ModalDialog
+{
+ //-------------------------------------------
+ // member
+ private:
+ FixedText m_aDescrFT;
+ FixedText m_aFileListFT;
+ ListBox m_aFileListLB;
+ FixedText m_aSaveDirFT;
+ Edit m_aSaveDirED;
+ PushButton m_aSaveDirBtn;
+ FixedLine m_aBottomFL;
+ OKButton m_aOkBtn;
+ CancelButton m_aCancelBtn;
+
+ ::rtl::OUString m_sSavePath;
+ RecoveryCore* m_pCore;
+ sal_Bool m_bBeforeRecovery;
+ sal_Bool m_bExecutionNeeded;
+
+ //-------------------------------------------
+ // interface
+ public:
+
+ //---------------------------------------
+ /** @short TODO */
+ BrokenRecoveryDialog(Window* pParent ,
+ RecoveryCore* pCore ,
+ sal_Bool bBeforeRecovery);
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual ~BrokenRecoveryDialog();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual sal_Bool isExecutionNeeded();
+
+ //---------------------------------------
+ /** @short TODO */
+ virtual ::rtl::OUString getSaveDirURL();
+
+ //-------------------------------------------
+ // helper
+ private:
+
+ //---------------------------------------
+ /** @short TODO */
+ void impl_refresh();
+
+ //---------------------------------------
+ /** @short TODO */
+ DECL_LINK(SaveButtonHdl, void*);
+
+ //---------------------------------------
+ /** @short TODO */
+ DECL_LINK(OkButtonHdl, void*);
+
+ //---------------------------------------
+ /** @short TODO */
+ DECL_LINK(CancelButtonHdl, void*);
+
+ //---------------------------------------
+ /** @short TODO */
+ void impl_askForSavePath();
+};
+
+
+
+ class ErrorRepWelcomeDialog : public IExtendedTabPage
+ {
+ private:
+ Window maTitleWin;
+ FixedText maTitleFT;
+ FixedLine maTitleFL;
+ FixedText maDescrFT;
+
+ FixedLine maBottomFL;
+ PushButton maPrevBtn;
+ OKButton maNextBtn;
+ CancelButton maCancelBtn;
+
+ DECL_LINK( PrevBtnHdl, void* );
+ DECL_LINK( NextBtnHdl, void* );
+ DECL_LINK( CancelBtnHdl, void* );
+ public:
+ ErrorRepWelcomeDialog( Window* _pParent, sal_Bool _bAllowBack = sal_True );
+ virtual ~ErrorRepWelcomeDialog();
+ /** @short TODO*/
+ virtual short execute();
+
+ //---------------------------------------
+ /** @short TODO*/
+ virtual void setDefButton();
+ };
+
+ struct ErrorRepParams
+ {
+ ErrorRepParams()
+#ifdef WNT
+ : miHTTPConnectionType( 0 )
+#else
+ : miHTTPConnectionType( 1 )
+#endif
+ , mbAllowContact( false )
+ {}
+
+ String maHTTPProxyServer;
+ String maHTTPProxyPort;
+ int miHTTPConnectionType;
+ bool mbAllowContact;
+ String maReturnAddress;
+ String maSubject;
+ String maBody;
+ };
+
+ class ErrorDescriptionEdit : public MultiLineEdit
+ {
+ private:
+ DECL_LINK( ModifyHdl, void* );
+
+ public:
+ ErrorDescriptionEdit( Window* pParent, const ResId& rResId );
+ virtual ~ErrorDescriptionEdit();
+ };
+
+ class ErrorRepSendDialog : public IExtendedTabPage
+ {
+ private:
+ Window maTitleWin;
+ FixedText maTitleFT;
+ FixedLine maTitleFL;
+ FixedText maDescrFT;
+
+ FixedText maDocTypeFT;
+ Edit maDocTypeED;
+ FixedText maUsingFT;
+ ErrorDescriptionEdit maUsingML;
+ PushButton maShowRepBtn;
+ PushButton maOptBtn;
+ CheckBox maContactCB;
+ FixedText maEMailAddrFT;
+ Edit maEMailAddrED;
+
+ FixedLine maBottomFL;
+ PushButton maPrevBtn;
+ OKButton maNextBtn;
+ CancelButton maCancelBtn;
+
+ ErrorRepParams maParams;
+
+ DECL_LINK( ShowRepBtnHdl, void* );
+ DECL_LINK( OptBtnHdl, void* );
+ DECL_LINK( ContactCBHdl, void* );
+ DECL_LINK( PrevBtnHdl, void* );
+ DECL_LINK( SendBtnHdl, void* );
+ DECL_LINK( CancelBtnHdl, void* );
+
+ void initControls();
+
+ public:
+ ErrorRepSendDialog( Window* _pParent );
+ virtual ~ErrorRepSendDialog();
+
+ String GetDocType( void ) const;
+ String GetUsing( void ) const;
+ bool IsContactAllowed( void ) const;
+ String GetEMailAddress( void ) const;
+
+ bool ReadParams();
+ bool SaveParams();
+ bool SendReport();
+
+ /** @short TODO*/
+ virtual short execute();
+
+ //---------------------------------------
+ /** @short TODO*/
+ virtual void setDefButton();
+ };
+
+ class ErrorRepOptionsDialog : public ModalDialog
+ {
+ private:
+ FixedLine maProxyFL;
+ RadioButton maSystemBtn;
+ RadioButton maDirectBtn;
+ RadioButton maManualBtn;
+ FixedText maProxyServerFT;
+ Edit maProxyServerEd;
+ FixedText maProxyPortFT;
+ Edit maProxyPortEd;
+ FixedText maDescriptionFT;
+ FixedLine maButtonsFL;
+ OKButton maOKBtn;
+ CancelButton maCancelBtn;
+
+ ErrorRepParams& mrParams;
+
+ DECL_LINK( CancelBtnHdl, void* );
+ DECL_LINK( OKBtnHdl, void * );
+ DECL_LINK( ManualBtnHdl, void * );
+
+ public:
+ ErrorRepOptionsDialog( Window* _pParent, ErrorRepParams& rParams );
+ virtual ~ErrorRepOptionsDialog();
+ };
+
+ class ErrorRepEdit : public ExtMultiLineEdit
+ {
+ public:
+ ErrorRepEdit( Window* pParent, const ResId& rResId );
+ virtual ~ErrorRepEdit();
+ };
+
+ class ErrorRepPreviewDialog : public ModalDialog
+ {
+ private:
+ ErrorRepEdit maContentML;
+ OKButton maOKBtn;
+
+ long mnMinHeight;
+
+ public:
+ ErrorRepPreviewDialog( Window* _pParent );
+ virtual ~ErrorRepPreviewDialog();
+
+ virtual void Resize();
+ };
+ } // namespace DocRecovery
+} // namespace svx
+
+#undef css
+
+#endif