Kaydet (Commit) 57d78021 authored tarafından Jan-Marek Glogowski's avatar Jan-Marek Glogowski Kaydeden (comit) Michael Stahl

MM: refactor cancel handling for dbui dialogs

This simplifies the handling of CreateMonitor and PrintMonitor in
the combined mail merge function.

Change-Id: Iacf933ec1a6017949b29b3d5f62d5f55c4691053
Reviewed-on: https://gerrit.libreoffice.org/10984Reviewed-by: 's avatarMichael Stahl <mstahl@redhat.com>
Tested-by: 's avatarMichael Stahl <mstahl@redhat.com>
üst 3b11057b
......@@ -645,7 +645,7 @@ IMPL_LINK(SwMailMergeOutputPage, SaveOutputHdl_Impl, PushButton*, pButton)
SwView* pSourceView = rConfigItem.GetSourceView();
PrintMonitor aSaveMonitor(this, PrintMonitor::MONITOR_TYPE_SAVE);
aSaveMonitor.m_pDocName->SetText(pSourceView->GetDocShell()->GetTitle(22));
aSaveMonitor.m_pCancel->SetClickHdl(LINK(this, SwMailMergeOutputPage, SaveCancelHdl_Impl));
aSaveMonitor.SetCancelHdl(LINK(this, SwMailMergeOutputPage, SaveCancelHdl_Impl));
aSaveMonitor.m_pPrinter->SetText( INetURLObject( sPath ).getFSysPath( INetURLObject::FSYS_DETECT ) );
m_bCancelSaving = false;
aSaveMonitor.Show();
......
......@@ -965,7 +965,7 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell,
PrintMonitor aPrtMonDlg(&pSourceShell->GetView().GetEditWin(), PrintMonitor::MONITOR_TYPE_PRINT);
aPrtMonDlg.m_pDocName->SetText(pSourceShell->GetView().GetDocShell()->GetTitle(22));
aPrtMonDlg.m_pCancel->SetClickHdl(LINK(this, SwDBManager, PrtCancelHdl));
aPrtMonDlg.SetCancelHdl(LINK(this, SwDBManager, PrtCancelHdl));
if (!IsMergeSilent())
aPrtMonDlg.Show();
......
......@@ -23,10 +23,9 @@
#include "dbui.hxx"
PrintMonitor::PrintMonitor(Window *pParent, PrintMonitorType eType )
: ModelessDialog(pParent, "PrintMonitorDialog",
: CancelableModelessDialog(pParent, "PrintMonitorDialog",
"modules/swriter/ui/printmonitordialog.ui")
{
get(m_pCancel, "cancel");
get(m_pDocName, "docname");
get(m_pPrinter, "printer");
get(m_pPrintInfo, "printinfo");
......@@ -45,7 +44,7 @@ PrintMonitor::PrintMonitor(Window *pParent, PrintMonitorType eType )
// Progress Indicator for Creation of personalized Mail Merge documents:
CreateMonitor::CreateMonitor( Window *pParent )
: ModelessDialog(pParent, "MMCreatingDialog",
: CancelableModelessDialog(pParent, "MMCreatingDialog",
"modules/swriter/ui/mmcreatingdialog.ui")
, m_sCountingPattern()
, m_sVariable_Total("%Y")
......@@ -53,7 +52,6 @@ CreateMonitor::CreateMonitor( Window *pParent )
, m_nTotalCount(0)
, m_nCurrentPosition(0)
{
get(m_pCancelButton, "cancel");
get(m_pCounting, "progress");
m_sCountingPattern = m_pCounting->GetText();
m_pCounting->SetText("...");
......@@ -79,7 +77,14 @@ void CreateMonitor::SetCurrentPosition( sal_Int32 nCurrent )
UpdateCountingText();
}
void CreateMonitor::SetCancelHdl( const Link& rLink )
CancelableModelessDialog::CancelableModelessDialog( Window *pParent,
const OString& rID, const OUString& rUIXMLDescription )
: ModelessDialog( pParent , rID, rUIXMLDescription )
{
get(m_pCancelButton, "cancel");
}
void CancelableModelessDialog::SetCancelHdl( const Link& rLink )
{
m_pCancelButton->SetClickHdl( rLink );
}
......
......@@ -24,7 +24,19 @@
#include <vcl/button.hxx>
#include <vcl/fixed.hxx>
class SW_DLLPUBLIC PrintMonitor: public ModelessDialog
class SW_DLLPUBLIC CancelableModelessDialog : public ModelessDialog
{
protected:
CancelButton* m_pCancelButton;
CancelableModelessDialog( Window *pParent, const OString& rID,
const OUString& rUIXMLDescription );
public:
virtual ~CancelableModelessDialog() {};
void SetCancelHdl( const Link& rLink );
};
class SW_DLLPUBLIC PrintMonitor: public CancelableModelessDialog
{
public:
enum PrintMonitorType
......@@ -32,16 +44,16 @@ public:
MONITOR_TYPE_PRINT,
MONITOR_TYPE_SAVE
};
FixedText* m_pDocName;
FixedText* m_pPrinting;
FixedText* m_pPrinter;
FixedText* m_pPrintInfo;
CancelButton* m_pCancel;
PrintMonitor( Window *pParent, PrintMonitorType eType );
};
class CreateMonitor : public ModelessDialog
class CreateMonitor : public CancelableModelessDialog
{
public:
CreateMonitor( Window *pParent );
......@@ -49,14 +61,11 @@ public:
void SetTotalCount( sal_Int32 nTotal );
void SetCurrentPosition( sal_Int32 nCurrent );
void SetCancelHdl( const Link& rLink );
private:
void UpdateCountingText();
private:
FixedText* m_pCounting;
CancelButton* m_pCancelButton;
OUString m_sCountingPattern;
OUString m_sVariable_Total;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment