diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-03-16 20:35:23 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-03-18 13:43:34 +0100 |
commit | 2fb266bb77722cd45af7346e99a8f214c3f8b198 (patch) | |
tree | 00901e9e800809ea30ab378be622446bb7804e46 | |
parent | 6709db941ff3257226f48212d2c36ee1b0d68200 (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.cxx | 36 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 8 | ||||
-rw-r--r-- | sc/source/filter/oox/workbookfragment.cxx | 37 | ||||
-rw-r--r-- | sc/source/ui/docshell/docsh.cxx | 60 | ||||
-rw-r--r-- | sc/source/ui/inc/warnbox.hxx | 3 | ||||
-rw-r--r-- | sc/source/ui/miscdlgs/warnbox.cxx | 16 | ||||
-rw-r--r-- | sfx2/source/dialog/alienwarn.cxx | 11 | ||||
-rw-r--r-- | sfx2/source/inc/alienwarn.hxx | 3 | ||||
-rw-r--r-- | sw/source/ui/dbui/mmresultdialogs.cxx | 73 | ||||
-rw-r--r-- | sw/source/ui/dialog/swmessdialog.cxx | 36 | ||||
-rw-r--r-- | sw/source/uibase/inc/swmessdialog.hxx | 20 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/alreadyexistsdialog.ui | 144 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/attachnamedialog.ui | 144 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/subjectdialog.ui | 146 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 22 |
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: */ |