summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-16 20:35:23 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-03-18 13:43:34 +0100
commit2fb266bb77722cd45af7346e99a8f214c3f8b198 (patch)
tree00901e9e800809ea30ab378be622446bb7804e46
parent6709db941ff3257226f48212d2c36ee1b0d68200 (diff)
unify the message dialogs with extra widgets cases
Change-Id: I9ad3573b15d24c3d1737b9f450792952ae20a31b Reviewed-on: https://gerrit.libreoffice.org/51476 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--extensions/source/bibliography/bibview.cxx36
-rw-r--r--include/vcl/weld.hxx8
-rw-r--r--sc/source/filter/oox/workbookfragment.cxx37
-rw-r--r--sc/source/ui/docshell/docsh.cxx60
-rw-r--r--sc/source/ui/inc/warnbox.hxx3
-rw-r--r--sc/source/ui/miscdlgs/warnbox.cxx16
-rw-r--r--sfx2/source/dialog/alienwarn.cxx11
-rw-r--r--sfx2/source/inc/alienwarn.hxx3
-rw-r--r--sw/source/ui/dbui/mmresultdialogs.cxx73
-rw-r--r--sw/source/ui/dialog/swmessdialog.cxx36
-rw-r--r--sw/source/uibase/inc/swmessdialog.hxx20
-rw-r--r--sw/uiconfig/swriter/ui/alreadyexistsdialog.ui144
-rw-r--r--sw/uiconfig/swriter/ui/attachnamedialog.ui144
-rw-r--r--sw/uiconfig/swriter/ui/subjectdialog.ui146
-rw-r--r--vcl/source/app/salvtables.cxx22
15 files changed, 241 insertions, 518 deletions
diff --git a/extensions/source/bibliography/bibview.cxx b/extensions/source/bibliography/bibview.cxx
index 308c37ca4f24..c8e87a954dfe 100644
--- a/extensions/source/bibliography/bibview.cxx
+++ b/extensions/source/bibliography/bibview.cxx
@@ -41,6 +41,21 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::uno;
+namespace
+{
+ class MessageWithCheck : public weld::MessageDialogController
+ {
+ private:
+ std::unique_ptr<weld::CheckButton> m_xWarningOnBox;
+ public:
+ MessageWithCheck(weld::Window *pParent)
+ : weld::MessageDialogController(pParent, "modules/sbibliography/ui/querydialog.ui", "QueryDialog", "ask")
+ , m_xWarningOnBox(m_xBuilder->weld_check_button("ask"))
+ {
+ }
+ bool get_active() const { return m_xWarningOnBox->get_active(); }
+ };
+}
namespace bib
{
@@ -139,24 +154,11 @@ namespace bib
sErrorString += "\n";
sErrorString += BibResId(RID_MAP_QUESTION);
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "modules/sbibliography/ui/querydialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("QueryDialog"));
- xQueryBox->set_primary_text(sErrorString);
- std::unique_ptr<weld::CheckButton> xWarningOnBox(xBuilder->weld_check_button("ask"));
-
- //fdo#75121, a bit tricky because the widgets we want to align with
- //don't actually exist in the ui description, they're implied
- std::unique_ptr<weld::Container> xOrigParent(xWarningOnBox->weld_parent());
- std::unique_ptr<weld::Container> xContentArea(xQueryBox->weld_message_area());
- xOrigParent->remove(xWarningOnBox.get());
- xContentArea->add(xWarningOnBox.get());
-
- short nResult = xQueryBox->run();
- BibModul::GetConfig()->SetShowColumnAssignmentWarning(!xWarningOnBox->get_active());
+ MessageWithCheck aQueryBox(GetFrameWeld());
+ aQueryBox.set_primary_text(sErrorString);
- //put them back as they were
- xContentArea->remove(xWarningOnBox.get());
- xOrigParent->add(xWarningOnBox.get());
+ short nResult = aQueryBox.run();
+ BibModul::GetConfig()->SetShowColumnAssignmentWarning(!aQueryBox.get_active());
if( RET_YES != nResult )
{
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index eb1f8501cf04..b6c635e89e57 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -613,13 +613,19 @@ private:
protected:
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::MessageDialog> m_xDialog;
+ std::unique_ptr<weld::Container> m_xContentArea;
+ std::unique_ptr<weld::Widget> m_xRelocate;
+ std::unique_ptr<weld::Container> m_xOrigParent;
public:
MessageDialogController(weld::Widget* pParent, const OUString& rUIFile,
- const OString& rDialogId);
+ const OString& rDialogId, const OString& rRelocateId = OString());
~MessageDialogController() override;
void set_title(const OUString& rTitle) { m_xDialog->set_title(rTitle); }
void set_help_id(const OString& rHelpId) { m_xDialog->set_help_id(rHelpId); }
+ void set_primary_text(const OUString& rText) { m_xDialog->set_primary_text(rText); }
+ OUString get_primary_text() const { return m_xDialog->get_primary_text(); }
+ void set_default_response(int response) { m_xDialog->set_default_response(response); }
};
}
#endif
diff --git a/sc/source/filter/oox/workbookfragment.cxx b/sc/source/filter/oox/workbookfragment.cxx
index 7a57a2a04402..d1fef597ae2f 100644
--- a/sc/source/filter/oox/workbookfragment.cxx
+++ b/sc/source/filter/oox/workbookfragment.cxx
@@ -516,6 +516,19 @@ ScDocShell& getDocShell(const ScDocument& rDoc)
return static_cast<ScDocShell&>(*rDoc.GetDocumentShell());
}
+class MessageWithCheck : public weld::MessageDialogController
+{
+private:
+ std::unique_ptr<weld::CheckButton> m_xWarningOnBox;
+public:
+ MessageWithCheck(weld::Window *pParent, const OUString& rUIFile, const OString& rDialogId)
+ : weld::MessageDialogController(pParent, rUIFile, rDialogId, "ask")
+ , m_xWarningOnBox(m_xBuilder->weld_check_button("ask"))
+ {
+ }
+ bool get_active() const { return m_xWarningOnBox->get_active(); }
+};
+
}
void WorkbookFragment::recalcFormulaCells()
@@ -534,27 +547,13 @@ void WorkbookFragment::recalcFormulaCells()
// Ask the user if full re-calculation is desired.
vcl::Window* pWin = ScDocShell::GetActiveDialogParent();
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWin ? pWin->GetFrameWeld() : nullptr,
- "modules/scalc/ui/recalcquerydialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("RecalcQueryDialog"));
- xQueryBox->set_primary_text(ScGlobal::GetRscString(STR_QUERY_FORMULA_RECALC_ONLOAD_XLS));
- xQueryBox->set_default_response(RET_YES);
- std::unique_ptr<weld::CheckButton> xWarningOnBox(xBuilder->weld_check_button("ask"));
-
- //fdo#75121, a bit tricky because the widgets we want to align with
- //don't actually exist in the ui description, they're implied
- std::unique_ptr<weld::Container> xOrigParent(xWarningOnBox->weld_parent());
- std::unique_ptr<weld::Container> xContentArea(xQueryBox->weld_message_area());
- xOrigParent->remove(xWarningOnBox.get());
- xContentArea->add(xWarningOnBox.get());
-
- bHardRecalc = xQueryBox->run() == RET_YES;
+ MessageWithCheck aQueryBox(pWin ? pWin->GetFrameWeld() : nullptr, "modules/scalc/ui/recalcquerydialog.ui", "RecalcQueryDialog");
+ aQueryBox.set_primary_text(ScGlobal::GetRscString(STR_QUERY_FORMULA_RECALC_ONLOAD_XLS));
+ aQueryBox.set_default_response(RET_YES);
- //put them back as they were
- xContentArea->remove(xWarningOnBox.get());
- xOrigParent->add(xWarningOnBox.get());
+ bHardRecalc = aQueryBox.run() == RET_YES;
- if (xWarningOnBox->get_active())
+ if (aQueryBox.get_active())
{
// Always perform selected action in the future.
std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index ec9505da8840..e59ee43400e8 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -428,6 +428,19 @@ void processDataStream( ScDocShell& rShell, const sc::ImportPostProcessData& rDa
rMgr.setDataStream(pStrm);
}
+class MessageWithCheck : public weld::MessageDialogController
+{
+private:
+ std::unique_ptr<weld::CheckButton> m_xWarningOnBox;
+public:
+ MessageWithCheck(weld::Window *pParent, const OUString& rUIFile, const OString& rDialogId)
+ : weld::MessageDialogController(pParent, rUIFile, rDialogId, "ask")
+ , m_xWarningOnBox(m_xBuilder->weld_check_button("ask"))
+ {
+ }
+ bool get_active() const { return m_xWarningOnBox->get_active(); }
+};
+
}
bool ScDocShell::LoadXML( SfxMedium* pLoadMedium, const css::uno::Reference< css::embed::XStorage >& xStor )
@@ -475,27 +488,14 @@ bool ScDocShell::LoadXML( SfxMedium* pLoadMedium, const css::uno::Reference< css
// full re-calculation.
vcl::Window* pWin = GetActiveDialogParent();
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWin ? pWin->GetFrameWeld() : nullptr,
- "modules/scalc/ui/recalcquerydialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("RecalcQueryDialog"));
- xQueryBox->set_primary_text(ScGlobal::GetRscString(STR_QUERY_FORMULA_RECALC_ONLOAD_ODS));
- xQueryBox->set_default_response(RET_YES);
- std::unique_ptr<weld::CheckButton> xWarningOnBox(xBuilder->weld_check_button("ask"));
-
- //fdo#75121, a bit tricky because the widgets we want to align with
- //don't actually exist in the ui description, they're implied
- std::unique_ptr<weld::Container> xOrigParent(xWarningOnBox->weld_parent());
- std::unique_ptr<weld::Container> xContentArea(xQueryBox->weld_message_area());
- xOrigParent->remove(xWarningOnBox.get());
- xContentArea->add(xWarningOnBox.get());
-
- bHardRecalc = xQueryBox->run() == RET_YES;
+ MessageWithCheck aQueryBox(pWin ? pWin->GetFrameWeld() : nullptr,
+ "modules/scalc/ui/recalcquerydialog.ui", "RecalcQueryDialog");
+ aQueryBox.set_primary_text(ScGlobal::GetRscString(STR_QUERY_FORMULA_RECALC_ONLOAD_ODS));
+ aQueryBox.set_default_response(RET_YES);
- //put them back as they were
- xContentArea->remove(xWarningOnBox.get());
- xOrigParent->add(xWarningOnBox.get());
+ bHardRecalc = aQueryBox.run() == RET_YES;
- if (xWarningOnBox->get_active())
+ if (aQueryBox.get_active())
{
// Always perform selected action in the future.
std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
@@ -725,25 +725,11 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
{
vcl::Window* pWin = ScDocShell::GetActiveDialogParent();
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pWin ? pWin->GetFrameWeld() : nullptr,
- "modules/scalc/ui/sharedwarningdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarningBox(xBuilder->weld_message_dialog("SharedWarningDialog"));
- std::unique_ptr<weld::CheckButton> xWarningOnBox(xBuilder->weld_check_button("ask"));
-
- //fdo#75121, a bit tricky because the widgets we want to align with
- //don't actually exist in the ui description, they're implied
- std::unique_ptr<weld::Container> xOrigParent(xWarningOnBox->weld_parent());
- std::unique_ptr<weld::Container> xContentArea(xWarningBox->weld_message_area());
- xOrigParent->remove(xWarningOnBox.get());
- xContentArea->add(xWarningOnBox.get());
-
- xWarningBox->run();
-
- //put them back as they were
- xContentArea->remove(xWarningOnBox.get());
- xOrigParent->add(xWarningOnBox.get());
+ MessageWithCheck aWarningBox(pWin ? pWin->GetFrameWeld() : nullptr,
+ "modules/scalc/ui/sharedwarningdialog.ui", "SharedWarningDialog");
+ aWarningBox.run();
- bool bChecked = xWarningOnBox->get_active();
+ bool bChecked = aWarningBox.get_active();
if (bChecked)
{
aAppOptions.SetShowSharedDocumentWarning( !bChecked );
diff --git a/sc/source/ui/inc/warnbox.hxx b/sc/source/ui/inc/warnbox.hxx
index 54bdd269ebeb..02fea50e181a 100644
--- a/sc/source/ui/inc/warnbox.hxx
+++ b/sc/source/ui/inc/warnbox.hxx
@@ -27,11 +27,8 @@
class ScReplaceWarnBox : public weld::MessageDialogController
{
std::unique_ptr<weld::CheckButton> m_xWarningOnBox;
- std::unique_ptr<weld::Container> m_xOrigParent;
- std::unique_ptr<weld::Container> m_xContentArea;
public:
ScReplaceWarnBox(weld::Window* pParent);
- virtual ~ScReplaceWarnBox() override;
/** Opens dialog if IsDialogEnabled() returns true.
@descr If after executing the dialog the checkbox "Do not show again" is set,
diff --git a/sc/source/ui/miscdlgs/warnbox.cxx b/sc/source/ui/miscdlgs/warnbox.cxx
index bc0302c4bcbd..279639c7996f 100644
--- a/sc/source/ui/miscdlgs/warnbox.cxx
+++ b/sc/source/ui/miscdlgs/warnbox.cxx
@@ -27,26 +27,12 @@
ScReplaceWarnBox::ScReplaceWarnBox(weld::Window* pParent)
: MessageDialogController(pParent, "modules/scalc/ui/checkwarningdialog.ui",
- "CheckWarningDialog")
+ "CheckWarningDialog", "ask")
// By default, the check box is ON, and the user needs to un-check it to
// disable all future warnings.
, m_xWarningOnBox(m_xBuilder->weld_check_button("ask"))
- , m_xOrigParent(m_xWarningOnBox->weld_parent())
- , m_xContentArea(m_xDialog->weld_message_area())
{
m_xDialog->set_default_response(RET_YES);
-
- //fdo#75121, a bit tricky because the widgets we want to align with
- //don't actually exist in the ui description, they're implied
- m_xOrigParent->remove(m_xWarningOnBox.get());
- m_xContentArea->add(m_xWarningOnBox.get());
-}
-
-ScReplaceWarnBox::~ScReplaceWarnBox()
-{
- //put them back as they were
- m_xContentArea->remove(m_xWarningOnBox.get());
- m_xOrigParent->add(m_xWarningOnBox.get());
}
short ScReplaceWarnBox::execute()
diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx
index d9eeed1bd956..d5b45ba091a6 100644
--- a/sfx2/source/dialog/alienwarn.cxx
+++ b/sfx2/source/dialog/alienwarn.cxx
@@ -27,18 +27,11 @@
SfxAlienWarningDialog::SfxAlienWarningDialog(weld::Window* pParent, const OUString& _rFormatName,
const OUString& _rDefaultExtension, bool rDefaultIsAlien)
- : MessageDialogController(pParent, "sfx/ui/alienwarndialog.ui", "AlienWarnDialog")
+ : MessageDialogController(pParent, "sfx/ui/alienwarndialog.ui", "AlienWarnDialog", "ask")
, m_xKeepCurrentBtn(m_xBuilder->weld_button("save"))
, m_xUseDefaultFormatBtn(m_xBuilder->weld_button("cancel"))
, m_xWarningOnBox(m_xBuilder->weld_check_button("ask"))
- , m_xOrigParent(m_xWarningOnBox->weld_parent())
- , m_xContentArea(m_xDialog->weld_message_area())
{
- //fdo#75121, a bit tricky because the widgets we want to align with
- //don't actually exist in the ui description, they're implied
- m_xOrigParent->remove(m_xWarningOnBox.get());
- m_xContentArea->add(m_xWarningOnBox.get());
-
OUString aExtension = "ODF";
// replace formatname (text)
@@ -70,8 +63,6 @@ SfxAlienWarningDialog::SfxAlienWarningDialog(weld::Window* pParent, const OUStri
SfxAlienWarningDialog::~SfxAlienWarningDialog()
{
- m_xContentArea->remove(m_xWarningOnBox.get());
- m_xOrigParent->add(m_xWarningOnBox.get());
// save value of "warning off" checkbox, if necessary
SvtSaveOptions aSaveOpt;
bool bChecked = m_xWarningOnBox->get_active();
diff --git a/sfx2/source/inc/alienwarn.hxx b/sfx2/source/inc/alienwarn.hxx
index 5b93430882d8..eeda0fedfe1d 100644
--- a/sfx2/source/inc/alienwarn.hxx
+++ b/sfx2/source/inc/alienwarn.hxx
@@ -28,9 +28,6 @@ private:
std::unique_ptr<weld::Button> m_xUseDefaultFormatBtn;
std::unique_ptr<weld::CheckButton> m_xWarningOnBox;
- std::unique_ptr<weld::Container> m_xOrigParent;
- std::unique_ptr<weld::Container> m_xContentArea;
-
public:
SfxAlienWarningDialog(weld::Window* pParent, const OUString& _rFormatName,
const OUString& _rDefaultExtension, bool rDefaultIsAlien);
diff --git a/sw/source/ui/dbui/mmresultdialogs.cxx b/sw/source/ui/dbui/mmresultdialogs.cxx
index 708f4718b6e9..732cc26ae4ed 100644
--- a/sw/source/ui/dbui/mmresultdialogs.cxx
+++ b/sw/source/ui/dbui/mmresultdialogs.cxx
@@ -120,74 +120,73 @@ static OUString lcl_GetColumnValueOf(const OUString& rColumn, Reference < contai
class SwSaveWarningBox_Impl : public SwMessageAndEditDialog
{
- DECL_LINK( ModifyHdl, Edit&, void);
+ DECL_LINK( ModifyHdl, weld::Entry&, void);
public:
- SwSaveWarningBox_Impl(vcl::Window* pParent, const OUString& rFileName);
+ SwSaveWarningBox_Impl(weld::Window* pParent, const OUString& rFileName);
OUString GetFileName() const
{
- return m_pEdit->GetText();
+ return m_xEdit->get_text();
}
};
class SwSendQueryBox_Impl : public SwMessageAndEditDialog
{
bool bIsEmptyAllowed;
- DECL_LINK( ModifyHdl, Edit&, void);
+ DECL_LINK( ModifyHdl, weld::Entry&, void);
public:
- SwSendQueryBox_Impl(vcl::Window* pParent, const OUString& rID,
+ SwSendQueryBox_Impl(weld::Window* pParent, const OString& rID,
const OUString& rUIXMLDescription);
void SetValue(const OUString& rSet)
{
- m_pEdit->SetText(rSet);
- ModifyHdl(*m_pEdit);
+ m_xEdit->set_text(rSet);
+ ModifyHdl(*m_xEdit);
}
OUString GetValue() const
{
- return m_pEdit->GetText();
+ return m_xEdit->get_text();
}
void SetIsEmptyTextAllowed(bool bSet)
{
bIsEmptyAllowed = bSet;
- ModifyHdl(*m_pEdit);
+ ModifyHdl(*m_xEdit);
}
};
-SwSaveWarningBox_Impl::SwSaveWarningBox_Impl(vcl::Window* pParent, const OUString& rFileName)
+SwSaveWarningBox_Impl::SwSaveWarningBox_Impl(weld::Window* pParent, const OUString& rFileName)
: SwMessageAndEditDialog(pParent, "AlreadyExistsDialog",
"modules/swriter/ui/alreadyexistsdialog.ui")
{
- m_pEdit->SetText(rFileName);
- m_pEdit->SetModifyHdl(LINK(this, SwSaveWarningBox_Impl, ModifyHdl));
+ m_xEdit->set_text(rFileName);
+ m_xEdit->connect_changed(LINK(this, SwSaveWarningBox_Impl, ModifyHdl));
INetURLObject aTmp(rFileName);
- m_pPrimaryMessage->SetText(m_pPrimaryMessage->GetText().replaceAll("%1", aTmp.getName(
+ m_xDialog->set_primary_text(m_xDialog->get_primary_text().replaceAll("%1", aTmp.getName(
INetURLObject::LAST_SEGMENT, true, INetURLObject::DecodeMechanism::WithCharset)));
- ModifyHdl(*m_pEdit);
+ ModifyHdl(*m_xEdit);
}
-IMPL_LINK( SwSaveWarningBox_Impl, ModifyHdl, Edit&, rEdit, void)
+IMPL_LINK( SwSaveWarningBox_Impl, ModifyHdl, weld::Entry&, rEdit, void)
{
- m_pOKPB->Enable(!rEdit.GetText().isEmpty());
+ m_xOKPB->set_sensitive(!rEdit.get_text().isEmpty());
}
-SwSendQueryBox_Impl::SwSendQueryBox_Impl(vcl::Window* pParent, const OUString& rID,
+SwSendQueryBox_Impl::SwSendQueryBox_Impl(weld::Window* pParent, const OString& rID,
const OUString& rUIXMLDescription)
: SwMessageAndEditDialog(pParent, rID, rUIXMLDescription)
, bIsEmptyAllowed(true)
{
- m_pImageIM->SetImage(GetStandardQueryBoxImage());
- m_pEdit->SetModifyHdl(LINK(this, SwSendQueryBox_Impl, ModifyHdl));
- ModifyHdl(*m_pEdit);
+ m_xEdit->connect_changed(LINK(this, SwSendQueryBox_Impl, ModifyHdl));
+ ModifyHdl(*m_xEdit);
}
-IMPL_LINK( SwSendQueryBox_Impl, ModifyHdl, Edit&, rEdit, void)
+IMPL_LINK( SwSendQueryBox_Impl, ModifyHdl, weld::Entry&, rEdit, void)
{
- m_pOKPB->Enable(bIsEmptyAllowed || !rEdit.GetText().isEmpty());
+ m_xOKPB->set_sensitive(bIsEmptyAllowed || !rEdit.get_text().isEmpty());
}
class SwCopyToDialog : public SfxModalDialog
@@ -734,9 +733,9 @@ IMPL_LINK(SwMMResultSaveDialog, SaveOutputHdl_Impl, Button*, pButton, void)
if(bFailed)
{
- ScopedVclPtrInstance< SwSaveWarningBox_Impl > aWarning( pButton, sOutPath );
- if(RET_OK == aWarning->Execute())
- sOutPath = aWarning->GetFileName();
+ std::unique_ptr<SwSaveWarningBox_Impl> xWarning(new SwSaveWarningBox_Impl(pButton->GetFrameWeld(), sOutPath));
+ if (RET_OK == xWarning->run())
+ sOutPath = xWarning->GetFileName();
else
{
xTempDocShell->DoClose();
@@ -1011,26 +1010,26 @@ IMPL_LINK(SwMMResultEmailDialog, SendDocumentsHdl_Impl, Button*, pButton, void)
if(m_pSubjectED->GetText().isEmpty())
{
- ScopedVclPtrInstance<SwSendQueryBox_Impl> aQuery(pButton, "SubjectDialog",
- "modules/swriter/ui/subjectdialog.ui");
- aQuery->SetIsEmptyTextAllowed(true);
- aQuery->SetValue("");
- if(RET_OK == aQuery->Execute())
+ std::unique_ptr<SwSendQueryBox_Impl> xQuery(new SwSendQueryBox_Impl(pButton->GetFrameWeld(), "SubjectDialog",
+ "modules/swriter/ui/subjectdialog.ui"));
+ xQuery->SetIsEmptyTextAllowed(true);
+ xQuery->SetValue("");
+ if(RET_OK == xQuery->run())
{
- if(!aQuery->GetValue().isEmpty())
- m_pSubjectED->SetText(aQuery->GetValue());
+ if(!xQuery->GetValue().isEmpty())
+ m_pSubjectED->SetText(xQuery->GetValue());
}
else
return; // back to the dialog
}
if(!bAsBody && m_pAttachmentED->GetText().isEmpty())
{
- ScopedVclPtrInstance<SwSendQueryBox_Impl> aQuery(pButton, "AttachNameDialog",
- "modules/swriter/ui/attachnamedialog.ui");
- aQuery->SetIsEmptyTextAllowed(false);
- if(RET_OK == aQuery->Execute())
+ std::unique_ptr<SwSendQueryBox_Impl> xQuery(new SwSendQueryBox_Impl(pButton->GetFrameWeld(), "AttachNameDialog",
+ "modules/swriter/ui/attachnamedialog.ui"));
+ xQuery->SetIsEmptyTextAllowed(false);
+ if (RET_OK == xQuery->run())
{
- OUString sAttach(aQuery->GetValue());
+ OUString sAttach(xQuery->GetValue());
sal_Int32 nTokenCount = comphelper::string::getTokenCount(sAttach, '.');
if (2 > nTokenCount)
{
diff --git a/sw/source/ui/dialog/swmessdialog.cxx b/sw/source/ui/dialog/swmessdialog.cxx
index 85ad95643832..d244dd7b8392 100644
--- a/sw/source/ui/dialog/swmessdialog.cxx
+++ b/sw/source/ui/dialog/swmessdialog.cxx
@@ -8,41 +8,13 @@
*/
#include <swmessdialog.hxx>
-#include <vcl/button.hxx>
-#include <vcl/edit.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/messagedialog.hxx>
-#include <vcl/msgbox.hxx>
-#include <vcl/vclmedit.hxx>
-SwMessageAndEditDialog::SwMessageAndEditDialog(vcl::Window* pParent, const OUString& rID,
+SwMessageAndEditDialog::SwMessageAndEditDialog(weld::Window* pParent, const OString& rID,
const OUString& rUIXMLDescription)
- : ModalDialog(pParent, rID, rUIXMLDescription)
+ : MessageDialogController(pParent, rUIXMLDescription, rID, "grid")
+ , m_xEdit(m_xBuilder->weld_entry("edit"))
+ , m_xOKPB(m_xBuilder->weld_button("ok"))
{
- get(m_pOKPB, "ok");
- get(m_pPrimaryMessage, "primarymessage");
- m_pPrimaryMessage->SetPaintTransparent(true);
- get(m_pSecondaryMessage, "secondarymessage");
- m_pSecondaryMessage->SetPaintTransparent(true);
- MessageDialog::SetMessagesWidths(this, m_pPrimaryMessage, m_pSecondaryMessage);
- get(m_pImageIM, "image");
- m_pImageIM->SetImage(GetStandardWarningBoxImage());
- get(m_pEdit, "edit");
-}
-
-SwMessageAndEditDialog::~SwMessageAndEditDialog()
-{
- disposeOnce();
-}
-
-void SwMessageAndEditDialog::dispose()
-{
- m_pOKPB.clear();
- m_pImageIM.clear();
- m_pPrimaryMessage.clear();
- m_pSecondaryMessage.clear();
- m_pEdit.clear();
- ModalDialog::dispose();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/inc/swmessdialog.hxx b/sw/source/uibase/inc/swmessdialog.hxx
index cc5315f4df49..0c95e5e6a4b6 100644
--- a/sw/source/uibase/inc/swmessdialog.hxx
+++ b/sw/source/uibase/inc/swmessdialog.hxx
@@ -10,26 +10,16 @@
#ifndef INCLUDED_SW_SOURCE_UIBASE_INC_SWMESSDIALOG_HXX
#define INCLUDED_SW_SOURCE_UIBASE_INC_SWMESSDIALOG_HXX
-#include <vcl/dialog.hxx>
+#include <vcl/weld.hxx>
-class Edit;
-class FixedImage;
-class OKButton;
-class VclMultiLineEdit;
-
-class SwMessageAndEditDialog : public ModalDialog
+class SwMessageAndEditDialog : public weld::MessageDialogController
{
protected:
- VclPtr<OKButton> m_pOKPB;
- VclPtr<FixedImage> m_pImageIM;
- VclPtr<VclMultiLineEdit> m_pPrimaryMessage;
- VclPtr<VclMultiLineEdit> m_pSecondaryMessage;
- VclPtr<Edit> m_pEdit;
+ std::unique_ptr<weld::Entry> m_xEdit;
+ std::unique_ptr<weld::Button> m_xOKPB;
public:
- SwMessageAndEditDialog(vcl::Window* pParent, const OUString& rID,
+ SwMessageAndEditDialog(weld::Window* pParent, const OString& rID,
const OUString& rUIXMLDescription);
- virtual ~SwMessageAndEditDialog() override;
- virtual void dispose() override;
};
#endif // INCLUDED_SW_SOURCE_UIBASE_INC_SWMESSDIALOG_HXX
diff --git a/sw/uiconfig/swriter/ui/alreadyexistsdialog.ui b/sw/uiconfig/swriter/ui/alreadyexistsdialog.ui
index db9d47db0a10..c91eb989ee71 100644
--- a/sw/uiconfig/swriter/ui/alreadyexistsdialog.ui
+++ b/sw/uiconfig/swriter/ui/alreadyexistsdialog.ui
@@ -1,53 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.2 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
- <object class="GtkTextBuffer" id="textbuffer1">
- <property name="text" translatable="yes" context="alreadyexistsdialog|textbuffer1">A document with the name '%1' already exists.</property>
- </object>
- <object class="GtkTextBuffer" id="textbuffer2">
- <property name="text" translatable="yes" context="alreadyexistsdialog|textbuffer2">Please save this document under a different name.</property>
- </object>
- <object class="GtkDialog" id="AlreadyExistsDialog">
+ <object class="GtkMessageDialog" id="AlreadyExistsDialog">
<property name="can_focus">False</property>
- <property name="border_width">6</property>
<property name="title" translatable="yes" context="alreadyexistsdialog|AlreadyExistsDialog">File already exists</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
+ <property name="message_type">warning</property>
+ <property name="text" translatable="yes" context="alreadyexistsdialog|textbuffer1">A document with the name '%1' already exists.</property>
+ <property name="secondary_text" translatable="yes" context="alreadyexistsdialog|textbuffer2">Please save this document under a different name.</property>
<child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox1">
+ <object class="GtkBox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">24</property>
<child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area1">
+ <object class="GtkButtonBox">
<property name="can_focus">False</property>
- <property name="layout_style">end</property>
<child>
- <object class="GtkButton" id="ok">
- <property name="label">gtk-ok</property>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</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="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</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>
+ <object class="GtkButton" id="ok">
+ <property name="label">gtk-ok</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_stock">True</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@@ -55,127 +52,56 @@
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkGrid" id="grid">
<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">12</property>
- <property name="column_spacing">12</property>
+ <property name="row_spacing">7</property>
<child>
- <object class="GtkGrid" id="grid2">
+ <object class="GtkEntry" id="edit1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <child>
- <object class="GtkTextView" id="primarymessage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="buffer">textbuffer1</property>
- <property name="accepts_tab">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkTextView" id="secondarymessage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="buffer">textbuffer2</property>
- <property name="accepts_tab">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="grid3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="hexpand">True</property>
- <property name="row_spacing">7</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" context="alreadyexistsdialog|label1">New document name:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">edit</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="edit">
- <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">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
+ <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="image">
+ <object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">start</property>
- <property name="icon-size">6</property>
+ <property name="label" translatable="yes" context="subjectdialog|label1">Subject:</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="height">2</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
</child>
<action-widgets>
- <action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
+ <action-widget response="-5">ok</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/sw/uiconfig/swriter/ui/attachnamedialog.ui b/sw/uiconfig/swriter/ui/attachnamedialog.ui
index b1f4b8aa3fd3..5716a0fa6b00 100644
--- a/sw/uiconfig/swriter/ui/attachnamedialog.ui
+++ b/sw/uiconfig/swriter/ui/attachnamedialog.ui
@@ -1,53 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.2 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
- <object class="GtkTextBuffer" id="textbuffer1">
- <property name="text" translatable="yes" context="attachnamedialog|textbuffer1">You did not specify a new name for the attachment.</property>
- </object>
- <object class="GtkTextBuffer" id="textbuffer2">
- <property name="text" translatable="yes" context="attachnamedialog|textbuffer2">If you would like to provide one, please type it now.</property>
- </object>
- <object class="GtkDialog" id="AttachNameDialog">
+ <object class="GtkMessageDialog" id="AttachNameDialog">
<property name="can_focus">False</property>
- <property name="border_width">6</property>
<property name="title" translatable="yes" context="attachnamedialog|AttachNameDialog">No Attachment Name</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
+ <property name="message_type">question</property>
+ <property name="text" translatable="yes" context="attachnamedialog|textbuffer1">You did not specify a new name for the attachment.</property>
+ <property name="secondary_text" translatable="yes" context="attachnamedialog|textbuffer2">If you would like to provide one, please type it now.</property>
<child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox1">
+ <object class="GtkBox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">24</property>
<child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area1">
+ <object class="GtkButtonBox">
<property name="can_focus">False</property>
- <property name="layout_style">end</property>
<child>
- <object class="GtkButton" id="ok">
- <property name="label">gtk-ok</property>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</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="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</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>
+ <object class="GtkButton" id="ok">
+ <property name="label">gtk-ok</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_stock">True</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@@ -55,127 +52,56 @@
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkGrid" id="grid">
<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">12</property>
- <property name="column_spacing">12</property>
+ <property name="row_spacing">7</property>
<child>
- <object class="GtkGrid" id="grid2">
+ <object class="GtkEntry" id="edit1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <child>
- <object class="GtkTextView" id="primarymessage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="buffer">textbuffer1</property>
- <property name="accepts_tab">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkTextView" id="secondarymessage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="buffer">textbuffer2</property>
- <property name="accepts_tab">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="grid3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="hexpand">True</property>
- <property name="row_spacing">7</property>
- <child>
- <object class="GtkEntry" id="edit">
- <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">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" context="attachnamedialog|label1">Name:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">edit</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="image">
+ <object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">start</property>
- <property name="icon-size">6</property>
+ <property name="label" translatable="yes" context="attachnamedialog|label1">Name:</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="height">2</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
</child>
<action-widgets>
- <action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
+ <action-widget response="-5">ok</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/sw/uiconfig/swriter/ui/subjectdialog.ui b/sw/uiconfig/swriter/ui/subjectdialog.ui
index 1f255199b03e..8fecc10b0b07 100644
--- a/sw/uiconfig/swriter/ui/subjectdialog.ui
+++ b/sw/uiconfig/swriter/ui/subjectdialog.ui
@@ -1,53 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.2 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
- <object class="GtkTextBuffer" id="textbuffer1">
- <property name="text" translatable="yes" context="subjectdialog|textbuffer1">You did not specify a subject for this message.</property>
- </object>
- <object class="GtkTextBuffer" id="textbuffer2">
- <property name="text" translatable="yes" context="subjectdialog|textbuffer2">If you would like to provide one, please type it now.</property>
- </object>
- <object class="GtkDialog" id="SubjectDialog">
+ <object class="GtkMessageDialog" id="SubjectDialog">
<property name="can_focus">False</property>
- <property name="border_width">6</property>
<property name="title" translatable="yes" context="subjectdialog|SubjectDialog">No Subject</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
+ <property name="message_type">question</property>
+ <property name="text" translatable="yes" context="subjectdialog|textbuffer1">You did not specify a subject for this message.</property>
+ <property name="secondary_text" translatable="yes" context="subjectdialog|textbuffer2">If you would like to provide one, please type it now.</property>
<child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox1">
+ <object class="GtkBox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">24</property>
<child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area1">
+ <object class="GtkButtonBox">
<property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="homogeneous">True</property>
<child>
- <object class="GtkButton" id="ok">
- <property name="label">gtk-ok</property>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</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="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</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>
+ <object class="GtkButton" id="ok">
+ <property name="label">gtk-ok</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_stock">True</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@@ -55,127 +53,57 @@
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkGrid" id="grid">
<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">12</property>
- <property name="column_spacing">12</property>
+ <property name="row_spacing">7</property>
<child>
- <object class="GtkGrid" id="grid2">
+ <object class="GtkEntry" id="edit">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <child>
- <object class="GtkTextView" id="primarymessage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="buffer">textbuffer1</property>
- <property name="accepts_tab">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkTextView" id="secondarymessage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="buffer">textbuffer2</property>
- <property name="accepts_tab">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="grid3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="hexpand">True</property>
- <property name="row_spacing">7</property>
- <child>
- <object class="GtkEntry" id="edit">
- <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">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" context="subjectdialog|label1">Subject:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">edit</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
+ <property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="image">
+ <object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">start</property>
- <property name="icon-size">6</property>
+ <property name="label" translatable="yes" context="subjectdialog|label1">Subject:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">edit</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
- <property name="height">2</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
</child>
<action-widgets>
- <action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
+ <action-widget response="-5">ok</action-widget>
</action-widgets>
+ <child>
+ <placeholder/>
+ </child>
</object>
</interface>
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index ed2f3b2d08cf..bb66da6b4fb5 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -1598,13 +1598,31 @@ namespace weld
Dialog* MessageDialogController::getDialog() { return m_xDialog.get(); }
- MessageDialogController::MessageDialogController(weld::Widget* pParent, const OUString &rUIFile, const OString& rDialogId)
+ MessageDialogController::MessageDialogController(weld::Widget* pParent, const OUString &rUIFile, const OString& rDialogId,
+ const OString& rRelocateId)
: m_xBuilder(Application::CreateBuilder(pParent, rUIFile))
, m_xDialog(m_xBuilder->weld_message_dialog(rDialogId))
+ , m_xContentArea(m_xDialog->weld_message_area())
{
+ if (!rRelocateId.isEmpty())
+ {
+ m_xRelocate.reset(m_xBuilder->weld_container(rRelocateId));
+ m_xOrigParent.reset(m_xRelocate->weld_parent());
+ //fdo#75121, a bit tricky because the widgets we want to align with
+ //don't actually exist in the ui description, they're implied
+ m_xOrigParent->remove(m_xRelocate.get());
+ m_xContentArea->add(m_xRelocate.get());
+ }
}
- MessageDialogController::~MessageDialogController() = default;
+ MessageDialogController::~MessageDialogController()
+ {
+ if (m_xRelocate)
+ {
+ m_xContentArea->remove(m_xRelocate.get());
+ m_xOrigParent->add(m_xRelocate.get());
+ }
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */