diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-03-20 17:17:10 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-03-22 00:27:49 +0100 |
commit | a084d003a927440fb56b11a0b7175360a1af41ab (patch) | |
tree | 830911bfed2ad1f34730156d506bc9fd5c7c392c /dbaccess/source/ui | |
parent | 519293447189f75e842065f7ff211d395d0da4b6 (diff) |
weld OSQLMessageBox
Change-Id: Idbdb07bc342a91695d15ea1a87d1863798ca34b0
Reviewed-on: https://gerrit.libreoffice.org/51676
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess/source/ui')
22 files changed, 243 insertions, 279 deletions
diff --git a/dbaccess/source/ui/app/AppControllerDnD.cxx b/dbaccess/source/ui/app/AppControllerDnD.cxx index 7012171dd72c..342de47f7ec5 100644 --- a/dbaccess/source/ui/app/AppControllerDnD.cxx +++ b/dbaccess/source/ui/app/AppControllerDnD.cxx @@ -120,7 +120,7 @@ void OApplicationController::deleteTables(const std::vector< OUString>& _rList) sal_Int32 nResult = RET_YES; if ( bConfirm ) - nResult = ::dbaui::askForUserAction(getView(),STR_TITLE_CONFIRM_DELETION ,STR_QUERY_DELETE_TABLE,_rList.size() > 1 && (aIter+1) != _rList.end(),sTableName); + nResult = ::dbaui::askForUserAction(getFrameWeld(), STR_TITLE_CONFIRM_DELETION, STR_QUERY_DELETE_TABLE, _rList.size() > 1 && (aIter+1) != _rList.end(), sTableName); bool bUserConfirmedDelete = ( RET_YES == nResult ) diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx index 65fded7d83a4..d6c6415ebec5 100644 --- a/dbaccess/source/ui/browser/brwctrlr.cxx +++ b/dbaccess/source/ui/browser/brwctrlr.cxx @@ -1259,8 +1259,8 @@ IMPL_LINK_NOARG( SbaXDataBrowserController, OnAsyncDisplayError, void*, void ) { if ( m_aCurrentError.isValid() ) { - ScopedVclPtrInstance< OSQLMessageBox > aDlg( getBrowserView(), m_aCurrentError ); - aDlg->Execute(); + OSQLMessageBox aDlg(getFrameWeld(), m_aCurrentError); + aDlg.run(); } } diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.cxx b/dbaccess/source/ui/dlg/ConnectionHelper.cxx index 50c3c9d3bf28..e2c0f4c47903 100644 --- a/dbaccess/source/ui/dlg/ConnectionHelper.cxx +++ b/dbaccess/source/ui/dlg/ConnectionHelper.cxx @@ -694,7 +694,8 @@ namespace dbaui { OUString sFile = DBA_RES( STR_FILE_DOES_NOT_EXIST ); sFile = sFile.replaceFirst("$file$", aTransformer.get(OFileNotation::N_SYSTEM)); - ScopedVclPtrInstance<OSQLWarningBox>(this, sFile)->Execute(); + OSQLWarningBox aWarning(GetFrameWeld(), sFile); + aWarning.run(); setURLNoPrefix(sOldPath); SetRoadmapStateValue(false); callModifiedHdl(); diff --git a/dbaccess/source/ui/dlg/ConnectionPage.cxx b/dbaccess/source/ui/dlg/ConnectionPage.cxx index d0e72c72d289..670c399fa149 100644 --- a/dbaccess/source/ui/dlg/ConnectionPage.cxx +++ b/dbaccess/source/ui/dlg/ConnectionPage.cxx @@ -306,9 +306,9 @@ namespace dbaui #endif const char* pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - const OSQLMessageBox::MessageType mt = bSuccess ? OSQLMessageBox::Info : OSQLMessageBox::Error; - ScopedVclPtrInstance< OSQLMessageBox > aMsg( this, DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt ); - aMsg->Execute(); + const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error; + OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt); + aMsg.run(); } bool OConnectionTabPage::checkTestConnection() { diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx index 99a5d3aef1d9..4cdb11718bb0 100644 --- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx +++ b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx @@ -554,9 +554,9 @@ using namespace ::com::sun::star; } #endif const char *pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - const OSQLMessageBox::MessageType mt = bSuccess ? OSQLMessageBox::Info : OSQLMessageBox::Error; - ScopedVclPtrInstance<OSQLMessageBox> aMsg(this, DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt); - aMsg->Execute(); + const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error; + OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt); + aMsg.run(); } void OGeneralSpecialJDBCConnectionPageSetup::callModifiedHdl(void* pControl) @@ -675,8 +675,8 @@ using namespace ::com::sun::star; } #endif const char* pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - ScopedVclPtrInstance<OSQLMessageBox> aMsg(this, DBA_RES(pMessage), OUString()); - aMsg->Execute(); + OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString()); + aMsg.run(); } IMPL_LINK(OJDBCConnectionPageSetup, OnEditModified, Edit&, _rEdit, void) diff --git a/dbaccess/source/ui/dlg/adminpages.cxx b/dbaccess/source/ui/dlg/adminpages.cxx index 486a8189b969..520045fb09dd 100644 --- a/dbaccess/source/ui/dlg/adminpages.cxx +++ b/dbaccess/source/ui/dlg/adminpages.cxx @@ -253,7 +253,7 @@ namespace dbaui } if ( bShowMessage ) { - OSQLMessageBox::MessageType eImage = OSQLMessageBox::Info; + MessageType eImage = MessageType::Info; OUString aMessage,sTitle; sTitle = DBA_RES(STR_CONNECTION_TEST); if ( bSuccess ) @@ -262,11 +262,11 @@ namespace dbaui } else { - eImage = OSQLMessageBox::Error; + eImage = MessageType::Error; aMessage = DBA_RES(STR_CONNECTION_NO_SUCCESS); } - ScopedVclPtrInstance< OSQLMessageBox > aMsg( this, sTitle, aMessage, MessBoxStyle::Ok, eImage ); - aMsg->Execute(); + OSQLMessageBox aMsg(GetFrameWeld(), sTitle, aMessage, MessBoxStyle::Ok, eImage); + aMsg.run(); } if ( !bSuccess ) m_pAdminDialog->clearPassword(); diff --git a/dbaccess/source/ui/dlg/detailpages.cxx b/dbaccess/source/ui/dlg/detailpages.cxx index db0e8811d341..cc3fba28d0ff 100644 --- a/dbaccess/source/ui/dlg/detailpages.cxx +++ b/dbaccess/source/ui/dlg/detailpages.cxx @@ -540,10 +540,11 @@ namespace dbaui } #endif const char* pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS; - const OSQLMessageBox::MessageType mt = bSuccess ? OSQLMessageBox::Info : OSQLMessageBox::Error; - ScopedVclPtrInstance<OSQLMessageBox> aMsg(this, DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt); - aMsg->Execute(); + const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error; + OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt); + aMsg.run(); } + void OGeneralSpecialJDBCDetailsPage::callModifiedHdl(void* pControl) { if ( m_bUseClass && pControl == m_pEDDriverClass ) diff --git a/dbaccess/source/ui/dlg/sqlmessage.cxx b/dbaccess/source/ui/dlg/sqlmessage.cxx index f85b1b39d807..3df70af37535 100644 --- a/dbaccess/source/ui/dlg/sqlmessage.cxx +++ b/dbaccess/source/ui/dlg/sqlmessage.cxx @@ -24,8 +24,11 @@ #include <bitmaps.hlst> #include <com/sun/star/sdbc/SQLException.hpp> #include <com/sun/star/sdb/SQLContext.hpp> +#include <vcl/button.hxx> +#include <vcl/dialog.hxx> #include <vcl/fixed.hxx> #include <vcl/weld.hxx> +#include <vcl/svapp.hxx> #include <osl/diagnose.h> #include <svtools/treelistbox.hxx> #include <svtools/treelistentry.hxx> @@ -40,12 +43,6 @@ #define RET_MORE RET_RETRY + 1 -#define DIALOG_WIDTH 220 -#define OUTER_MARGIN 6 -#define IMAGE_SIZE 20 -#define INNER_PADDING 3 -#define TEXT_POS_X ( OUTER_MARGIN + IMAGE_SIZE + INNER_PADDING ) - using namespace dbtools; using namespace com::sun::star::uno; using namespace com::sun::star::sdb; @@ -371,35 +368,47 @@ struct SQLMessageBox_Impl namespace { - void lcl_positionInAppFont( const vcl::Window& _rParent, vcl::Window& _rChild, long _nX, long _nY, long Width, long Height ) - { - Point aPos = _rParent.LogicToPixel(Point(_nX, _nY), MapMode(MapUnit::MapAppFont)); - Size aSize = _rParent.LogicToPixel(Size(Width, Height), MapMode(MapUnit::MapAppFont)); - _rChild.SetPosSizePixel( aPos, aSize ); - } - - void lcl_addButton( ButtonDialog& _rDialog, StandardButtonType _eType, bool _bDefault ) + void lcl_addButton(weld::MessageDialog* pDialog, StandardButtonType eType, bool bDefault) { sal_uInt16 nButtonID = 0; - switch ( _eType ) + switch (eType) { - case StandardButtonType::Yes: nButtonID = RET_YES; break; - case StandardButtonType::No: nButtonID = RET_NO; break; - case StandardButtonType::OK: nButtonID = RET_OK; break; - case StandardButtonType::Cancel: nButtonID = RET_CANCEL; break; - case StandardButtonType::Retry: nButtonID = RET_RETRY; break; - case StandardButtonType::Help: nButtonID = RET_HELP; break; - default: - OSL_FAIL( "lcl_addButton: invalid button id!" ); - break; + case StandardButtonType::Yes: + nButtonID = RET_YES; + pDialog->add_button(Button::GetStandardText(StandardButtonType::Yes), nButtonID); + break; + case StandardButtonType::No: + nButtonID = RET_NO; + pDialog->add_button(Button::GetStandardText(StandardButtonType::No), nButtonID); + break; + case StandardButtonType::OK: + nButtonID = RET_OK; + pDialog->add_button(Button::GetStandardText(StandardButtonType::OK), nButtonID); + break; + case StandardButtonType::Cancel: + nButtonID = RET_CANCEL; + pDialog->add_button(Button::GetStandardText(StandardButtonType::Cancel), nButtonID); + break; + case StandardButtonType::Retry: + nButtonID = RET_RETRY; + pDialog->add_button(Button::GetStandardText(StandardButtonType::Retry), nButtonID); + break; + case StandardButtonType::Help: + nButtonID = RET_HELP; + pDialog->add_button(Button::GetStandardText(StandardButtonType::Help), nButtonID); + break; + default: + OSL_FAIL( "lcl_addButton: invalid button id!" ); + break; } - _rDialog.AddButton( _eType, nButtonID, _bDefault ? ButtonDialogFlags::Default | ButtonDialogFlags::Focus : ButtonDialogFlags::NONE ); + if (bDefault) + pDialog->set_default_response(nButtonID); } } -void OSQLMessageBox::impl_positionControls() +void OSQLMessageBox::impl_fillMessages() { - OSL_PRECOND( !m_pImpl->aDisplayInfo.empty(), "OSQLMessageBox::impl_positionControls: nothing to display at all?" ); + OSL_PRECOND( !m_pImpl->aDisplayInfo.empty(), "OSQLMessageBox::impl_fillMessages: nothing to display at all?" ); if ( m_pImpl->aDisplayInfo.empty() ) return; @@ -427,107 +436,44 @@ void OSQLMessageBox::impl_positionControls() sSecondary = pSecondInfo->sMessage; } - // image - lcl_positionInAppFont( *this, *m_aInfoImage.get(), OUTER_MARGIN, OUTER_MARGIN, IMAGE_SIZE, IMAGE_SIZE ); - m_aInfoImage->Show(); - // primary text - lcl_positionInAppFont( *this, *m_aTitle.get(), TEXT_POS_X, OUTER_MARGIN, DIALOG_WIDTH - TEXT_POS_X - 2 * OUTER_MARGIN, 16 ); - sPrimary = lcl_stripOOoBaseVendor( sPrimary ); - m_aTitle->SetText( sPrimary ); - m_aTitle->Show(); - - tools::Rectangle aPrimaryRect( m_aTitle->GetPosPixel(), m_aTitle->GetSizePixel() ); + m_xDialog->set_primary_text(lcl_stripOOoBaseVendor(sPrimary)); // secondary text (if applicable) - m_aMessage->SetStyle( m_aMessage->GetStyle() | WB_NOLABEL ); - sSecondary = lcl_stripOOoBaseVendor( sSecondary ); - m_aMessage->SetText( sSecondary ); - - lcl_positionInAppFont( *this, *m_aMessage.get(), TEXT_POS_X, OUTER_MARGIN + 16 + 3, DIALOG_WIDTH - TEXT_POS_X - 2 * OUTER_MARGIN, 8 ); - tools::Rectangle aSecondaryRect( m_aMessage->GetPosPixel(), m_aMessage->GetSizePixel() ); - - bool bHaveSecondaryText = !sSecondary.isEmpty(); - - // determine which space the secondary text would occupy - if ( bHaveSecondaryText ) - aSecondaryRect = GetTextRect( aSecondaryRect, sSecondary, DrawTextFlags::WordBreak | DrawTextFlags::MultiLine | DrawTextFlags::Left ); - else - aSecondaryRect.SetBottom( aSecondaryRect.Top() - 1 ); - - // adjust secondary control height accordingly - m_aMessage->SetSizePixel( aSecondaryRect.GetSize() ); - m_aMessage->Show( aSecondaryRect.GetHeight() > 0 ); - - // if there's no secondary text ... - if ( !bHaveSecondaryText ) - { // then give the primary text as much horizontal space as it needs - tools::Rectangle aSuggestedRect( GetTextRect( aPrimaryRect, sPrimary, DrawTextFlags::WordBreak | DrawTextFlags::MultiLine | DrawTextFlags::Center ) ); - aPrimaryRect.SetRight( aPrimaryRect.Left() + aSuggestedRect.GetWidth() ); - aPrimaryRect.SetBottom( aPrimaryRect.Top() + aSuggestedRect.GetHeight() ); - // and center it horizontally - m_aTitle->SetStyle( ( m_aTitle->GetStyle() & ~WB_LEFT ) | WB_CENTER ); - - tools::Rectangle aInfoRect( m_aInfoImage->GetPosPixel(), m_aInfoImage->GetSizePixel() ); - // also, if it's not as high as the image ... - if ( aPrimaryRect.GetHeight() < m_aInfoImage->GetSizePixel().Height() ) - { // ... make it fit the image height - aPrimaryRect.AdjustBottom(aInfoRect.GetHeight() - aPrimaryRect.GetHeight() ); - // and center it vertically - m_aTitle->SetStyle( m_aTitle->GetStyle() | WB_VCENTER ); - } - else - { // ... otherwise, center the image vertically, relative to the primary text - aInfoRect.Move( 0, ( aPrimaryRect.GetHeight() - aInfoRect.GetHeight() ) / 2 ); - m_aInfoImage->SetPosSizePixel( aInfoRect.TopLeft(), aInfoRect.GetSize() ); - } - - m_aTitle->SetPosSizePixel( aPrimaryRect.TopLeft(), aPrimaryRect.GetSize() ); - } - - // adjust dialog size accordingly - const tools::Rectangle& rBottomTextRect( bHaveSecondaryText ? aSecondaryRect : aPrimaryRect ); - Size aBorderSize = LogicToPixel(Size(OUTER_MARGIN, OUTER_MARGIN), MapMode(MapUnit::MapAppFont)); - Size aDialogSize( LogicToPixel(Size(DIALOG_WIDTH, 30), MapMode(MapUnit::MapAppFont))); - aDialogSize.setHeight( rBottomTextRect.Bottom() + aBorderSize.Height() ); - aDialogSize.setWidth( aPrimaryRect.Right() + aBorderSize.Width() ); - - SetSizePixel( aDialogSize ); - SetPageSizePixel( aDialogSize ); + m_xDialog->set_secondary_text(lcl_stripOOoBaseVendor(sSecondary)); } void OSQLMessageBox::impl_createStandardButtons( MessBoxStyle _nStyle ) { if ( _nStyle & MessBoxStyle::YesNoCancel ) { - lcl_addButton( *this, StandardButtonType::Yes, bool(_nStyle & MessBoxStyle::DefaultYes) ); - lcl_addButton( *this, StandardButtonType::No, bool( _nStyle & MessBoxStyle::DefaultNo ) ); - lcl_addButton( *this, StandardButtonType::Cancel, bool( _nStyle & MessBoxStyle::DefaultCancel ) ); + lcl_addButton(m_xDialog.get(), StandardButtonType::Yes, bool(_nStyle & MessBoxStyle::DefaultYes)); + lcl_addButton(m_xDialog.get(), StandardButtonType::No, bool(_nStyle & MessBoxStyle::DefaultNo)); + lcl_addButton(m_xDialog.get(), StandardButtonType::Cancel, bool(_nStyle & MessBoxStyle::DefaultCancel)); } else if ( _nStyle & MessBoxStyle::OkCancel ) { - lcl_addButton( *this, StandardButtonType::OK, bool( _nStyle & MessBoxStyle::DefaultOk ) ); - lcl_addButton( *this, StandardButtonType::Cancel, bool( _nStyle & MessBoxStyle::DefaultCancel ) ); + lcl_addButton(m_xDialog.get(), StandardButtonType::OK, bool(_nStyle & MessBoxStyle::DefaultOk)); + lcl_addButton(m_xDialog.get(), StandardButtonType::Cancel, bool(_nStyle & MessBoxStyle::DefaultCancel)); } else if ( _nStyle & MessBoxStyle::YesNo ) { - lcl_addButton( *this, StandardButtonType::Yes, bool( _nStyle & MessBoxStyle::DefaultYes ) ); - lcl_addButton( *this, StandardButtonType::No, bool( _nStyle & MessBoxStyle::DefaultNo ) ); + lcl_addButton(m_xDialog.get(), StandardButtonType::Yes, bool(_nStyle & MessBoxStyle::DefaultYes)); + lcl_addButton(m_xDialog.get(), StandardButtonType::No, bool(_nStyle & MessBoxStyle::DefaultNo)); } else if ( _nStyle & MessBoxStyle::RetryCancel ) { - lcl_addButton( *this, StandardButtonType::Retry, bool( _nStyle & MessBoxStyle::DefaultRetry ) ); - lcl_addButton( *this, StandardButtonType::Cancel, bool( _nStyle & MessBoxStyle::DefaultCancel ) ); + lcl_addButton(m_xDialog.get(), StandardButtonType::Retry, bool(_nStyle & MessBoxStyle::DefaultRetry)); + lcl_addButton(m_xDialog.get(), StandardButtonType::Cancel, bool(_nStyle & MessBoxStyle::DefaultCancel)); } - else + else if ( _nStyle & MessBoxStyle::Ok ) { - OSL_ENSURE( MessBoxStyle::Ok & _nStyle, "OSQLMessageBox::impl_createStandardButtons: unsupported dialog style requested!" ); - AddButton( StandardButtonType::OK, RET_OK, ButtonDialogFlags::Default | ButtonDialogFlags::Focus ); + lcl_addButton(m_xDialog.get(), StandardButtonType::OK, true); } if ( !m_sHelpURL.isEmpty() ) { - lcl_addButton( *this, StandardButtonType::Help, false ); + lcl_addButton(m_xDialog.get(), StandardButtonType::Help, false); OUString aTmp; INetURLObject aHID( m_sHelpURL ); @@ -536,13 +482,13 @@ void OSQLMessageBox::impl_createStandardButtons( MessBoxStyle _nStyle ) else aTmp = m_sHelpURL; - SetHelpId( OUStringToOString( aTmp, RTL_TEXTENCODING_UTF8 ) ); + m_xDialog->set_help_id(OUStringToOString(aTmp, RTL_TEXTENCODING_UTF8)); } } void OSQLMessageBox::impl_addDetailsButton() { - size_t nFirstPageVisible = m_aMessage->IsVisible() ? 2 : 1; + size_t nFirstPageVisible = m_xDialog->get_secondary_text().isEmpty() ? 1 : 2; bool bMoreDetailsAvailable = m_pImpl->aDisplayInfo.size() > nFirstPageVisible; if ( !bMoreDetailsAvailable ) @@ -561,20 +507,14 @@ void OSQLMessageBox::impl_addDetailsButton() if ( bMoreDetailsAvailable ) { - AddButton( StandardButtonType::More, RET_MORE); - PushButton* pButton = GetPushButton( RET_MORE ); - OSL_ENSURE( pButton, "OSQLMessageBox::impl_addDetailsButton: just added this button, why isn't it there?" ); - pButton->SetClickHdl( LINK( this, OSQLMessageBox, ButtonClickHdl ) ); + m_xDialog->add_button(Button::GetStandardText(StandardButtonType::More), RET_MORE); + m_xMoreButton.reset(m_xDialog->get_widget_for_response(RET_MORE)); + m_xMoreButton->connect_clicked(LINK(this, OSQLMessageBox, ButtonClickHdl)); } } -void OSQLMessageBox::Construct( MessBoxStyle _nStyle, MessageType _eImage ) +void OSQLMessageBox::Construct(weld::Window* pParent, MessBoxStyle _nStyle, MessageType _eImage) { - SetText( utl::ConfigManager::getProductName() + " Base" ); - - // position and size the controls and the dialog, depending on whether we have one or two texts to display - impl_positionControls(); - // init the image MessageType eType( _eImage ); if ( eType == AUTO ) @@ -587,87 +527,77 @@ void OSQLMessageBox::Construct( MessBoxStyle _nStyle, MessageType _eImage ) default: OSL_FAIL( "OSQLMessageBox::Construct: invalid type!" ); } } + VclMessageType eMessageType; switch (eType) { default: OSL_FAIL( "OSQLMessageBox::impl_initImage: unsupported image type!" ); SAL_FALLTHROUGH; case Info: - m_aInfoImage->SetImage(GetStandardInfoBoxImage()); + eMessageType = VclMessageType::Info; break; case Warning: - m_aInfoImage->SetImage(GetStandardWarningBoxImage()); + eMessageType = VclMessageType::Warning; break; case Error: - m_aInfoImage->SetImage(GetStandardErrorBoxImage()); + eMessageType = VclMessageType::Error; break; case Query: - m_aInfoImage->SetImage(GetStandardQueryBoxImage()); + eMessageType = VclMessageType::Question; break; } + m_xDialog.reset(Application::CreateMessageDialog(pParent, eMessageType, VclButtonsType::NONE, "")); + m_xDialog->set_title(utl::ConfigManager::getProductName() + " Base"); + + impl_fillMessages(); + // create buttons impl_createStandardButtons( _nStyle ); impl_addDetailsButton(); } -OSQLMessageBox::OSQLMessageBox(vcl::Window* _pParent, const SQLExceptionInfo& _rException, MessBoxStyle _nStyle, const OUString& _rHelpURL ) - :ButtonDialog( _pParent, WB_HORZ | WB_STDDIALOG ) - ,m_aInfoImage( VclPtr<FixedImage>::Create(this) ) - ,m_aTitle( VclPtr<FixedText>::Create(this, WB_WORDBREAK | WB_LEFT) ) - ,m_aMessage( VclPtr<FixedText>::Create(this, WB_WORDBREAK | WB_LEFT) ) - ,m_sHelpURL( _rHelpURL ) - ,m_pImpl( new SQLMessageBox_Impl( _rException ) ) +OSQLMessageBox::OSQLMessageBox(weld::Window* pParent, const SQLExceptionInfo& rException, MessBoxStyle nStyle, const OUString& rHelpURL) + : m_pImpl(new SQLMessageBox_Impl(rException)) + , m_sHelpURL(rHelpURL) { - Construct( _nStyle, AUTO ); + Construct(pParent, nStyle, AUTO); } -OSQLMessageBox::OSQLMessageBox( vcl::Window* _pParent, const OUString& _rTitle, const OUString& _rMessage, MessBoxStyle _nStyle, MessageType _eType, const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo ) - :ButtonDialog( _pParent, WB_HORZ | WB_STDDIALOG ) - ,m_aInfoImage( VclPtr<FixedImage>::Create(this) ) - ,m_aTitle( VclPtr<FixedText>::Create(this, WB_WORDBREAK | WB_LEFT) ) - ,m_aMessage( VclPtr<FixedText>::Create(this, WB_WORDBREAK | WB_LEFT) ) +OSQLMessageBox::OSQLMessageBox(weld::Window* pParent, const OUString& rTitle, const OUString& rMessage, MessBoxStyle nStyle, MessageType eType, const ::dbtools::SQLExceptionInfo* pAdditionalErrorInfo ) { SQLContext aError; - aError.Message = _rTitle; - aError.Details = _rMessage; - if ( _pAdditionalErrorInfo ) - aError.NextException = _pAdditionalErrorInfo->get(); + aError.Message = rTitle; + aError.Details = rMessage; + if (pAdditionalErrorInfo) + aError.NextException = pAdditionalErrorInfo->get(); - m_pImpl.reset( new SQLMessageBox_Impl( SQLExceptionInfo( aError ) ) ); + m_pImpl.reset(new SQLMessageBox_Impl(SQLExceptionInfo(aError))); - Construct( _nStyle, _eType ); + Construct(pParent, nStyle, eType); } OSQLMessageBox::~OSQLMessageBox() { - disposeOnce(); -} - -void OSQLMessageBox::dispose() -{ - m_aInfoImage.disposeAndClear(); - m_aTitle.disposeAndClear(); - m_aMessage.disposeAndClear(); - ButtonDialog::dispose(); } -IMPL_LINK_NOARG( OSQLMessageBox, ButtonClickHdl, Button *, void ) +IMPL_LINK_NOARG(OSQLMessageBox, ButtonClickHdl, weld::Button&, void) { - OExceptionChainDialog aDlg(GetFrameWeld(), m_pImpl->aDisplayInfo); + OExceptionChainDialog aDlg(m_xDialog.get(), m_pImpl->aDisplayInfo); aDlg.run(); } // OSQLWarningBox -OSQLWarningBox::OSQLWarningBox( vcl::Window* _pParent, const OUString& _rMessage, MessBoxStyle _nStyle, - const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo ) - :OSQLMessageBox( _pParent, DBA_RES( STR_EXCEPTION_WARNING ), _rMessage, _nStyle, OSQLMessageBox::Warning, _pAdditionalErrorInfo ) +OSQLWarningBox::OSQLWarningBox(weld::Window* pParent, const OUString& rMessage, MessBoxStyle nStyle, + const ::dbtools::SQLExceptionInfo* pAdditionalErrorInfo ) + : OSQLMessageBox(pParent, DBA_RES(STR_EXCEPTION_WARNING), rMessage, nStyle, MessageType::Warning, pAdditionalErrorInfo) { } // OSQLErrorBox -OSQLErrorBox::OSQLErrorBox( vcl::Window* _pParent, const OUString& _rMessage ) - :OSQLMessageBox( _pParent, DBA_RES( STR_EXCEPTION_ERROR ), _rMessage, MessBoxStyle::Ok | MessBoxStyle::DefaultOk, OSQLMessageBox::Error, nullptr ) +OSQLErrorBox::OSQLErrorBox(weld::Window* pParent, const OUString& rMessage) + : OSQLMessageBox(pParent, DBA_RES(STR_EXCEPTION_ERROR), rMessage, MessBoxStyle::Ok | MessBoxStyle::DefaultOk, + MessageType::Error, nullptr) { } diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx index b890c084058e..a6011aac205b 100644 --- a/dbaccess/source/ui/dlg/tablespage.cxx +++ b/dbaccess/source/ui/dlg/tablespage.cxx @@ -309,8 +309,9 @@ namespace dbaui if (aErrorInfo.isValid()) { // establishing the connection failed. Show an error window and exit. - ScopedVclPtrInstance< OSQLMessageBox > aMessageBox( GetParentDialog(), aErrorInfo ); - aMessageBox->Execute(); + vcl::Window *pParent = GetParentDialog(); + OSQLMessageBox aMessageBox(pParent ? pParent->GetFrameWeld() : nullptr, aErrorInfo); + aMessageBox.run(); m_pTables->Enable(false); m_pTablesList->Clear(); diff --git a/dbaccess/source/ui/inc/UITools.hxx b/dbaccess/source/ui/inc/UITools.hxx index 114e2ad78527..cd8e5a877b1b 100644 --- a/dbaccess/source/ui/inc/UITools.hxx +++ b/dbaccess/source/ui/inc/UITools.hxx @@ -200,16 +200,16 @@ namespace dbaui SvxCellHorJustify& _eJustify, bool _bHasFormat); /** append a name to tablefilter of a datasource - @param _xConnection the connection is need to get the datasource - @param _sName the name which should be appended - @param _rxContext needed to check if datasource is available - @param _pParent needed when an error must be shown + @param xConnection the connection is need to get the datasource + @param rName the name which should be appended + @param rxContext needed to check if datasource is available + @param pParent needed when an error must be shown @return false when datsource is not available otherwise true */ - bool appendToFilter(const css::uno::Reference< css::sdbc::XConnection>& _xConnection, - const OUString& _sName, - const css::uno::Reference< css::uno::XComponentContext >& _rxContext, - vcl::Window* _pParent); + bool appendToFilter(const css::uno::Reference< css::sdbc::XConnection>& xConnection, + const OUString& rName, + const css::uno::Reference< css::uno::XComponentContext >& rxContext, + weld::Window* pParent); /** notifySystemWindow adds or remove the given window _pToRegister at the Systemwindow found when search _pWindow. @param _pWindow @@ -307,21 +307,21 @@ namespace dbaui */ /** returns the result of the user action when view the query dialog. - @param _pParent + @param pParent The parent of the dialog @param pTitle A string resource id for the text which will be displayed as title. @param pText A string resource id for the text which will be displayed above the buttons. When the string contains a #1. This will be replaced by the name. - @param _bAll + @param bAll When set to <TRUE/>, the all button will be appended. - @param _sName + @param rName The name of the object to ask for. @return RET_YES, RET_NO, RET_ALL */ - sal_Int32 askForUserAction(vcl::Window* _pParent, const char* pTitle, const char* pText, bool _bAll, const OUString& _sName); + sal_Int32 askForUserAction(weld::Window* pParent, const char* pTitle, const char* pText, bool bAll, const OUString& rName); /** creates a new view from a query or table @param _sName diff --git a/dbaccess/source/ui/inc/sqlmessage.hxx b/dbaccess/source/ui/inc/sqlmessage.hxx index e070185f76f3..0f8bbe49142a 100644 --- a/dbaccess/source/ui/inc/sqlmessage.hxx +++ b/dbaccess/source/ui/inc/sqlmessage.hxx @@ -20,13 +20,8 @@ #ifndef INCLUDED_DBACCESS_SOURCE_UI_INC_SQLMESSAGE_HXX #define INCLUDED_DBACCESS_SOURCE_UI_INC_SQLMESSAGE_HXX -#include <vcl/button.hxx> -#include <vcl/fixed.hxx> -#include <vcl/btndlg.hxx> -#include <vcl/msgbox.hxx> - #include <connectivity/dbexception.hxx> - +#include <vcl/weld.hxx> #include <memory> // some forwards @@ -42,28 +37,51 @@ namespace com { namespace sun { namespace star { namespace dbaui { -// OSQLMessageBox -struct SQLMessageBox_Impl; -class OSQLMessageBox : public ButtonDialog +enum MessageType { - VclPtr<FixedImage> m_aInfoImage; - VclPtr<FixedText> m_aTitle; - VclPtr<FixedText> m_aMessage; - OUString m_sHelpURL; + Info, + Error, + Warning, + Query, + AUTO +}; + +enum class MessBoxStyle { + NONE = 0x0000, + Ok = 0x0001, + OkCancel = 0x0002, + YesNo = 0x0004, + YesNoCancel = 0x0008, + RetryCancel = 0x0010, + DefaultOk = 0x0020, + DefaultCancel = 0x0040, + DefaultRetry = 0x0080, + DefaultYes = 0x0100, + DefaultNo = 0x0200, + AbortRetryIgnore = 0x1000, + DefaultIgnore = 0x2000, +}; - std::unique_ptr< SQLMessageBox_Impl > m_pImpl; +} -public: - enum MessageType - { - Info, - Error, - Warning, - Query, +namespace o3tl { + template<> struct typed_flags<dbaui::MessBoxStyle> : is_typed_flags<dbaui::MessBoxStyle, 0x3fff> {}; +} - AUTO - }; +namespace dbaui +{ + +// OSQLMessageBox +struct SQLMessageBox_Impl; +class OSQLMessageBox : public weld::DialogController +{ + std::unique_ptr<weld::MessageDialog> m_xDialog; + std::unique_ptr<weld::Button> m_xMoreButton; + std::unique_ptr<SQLMessageBox_Impl> m_pImpl; + OUString m_sHelpURL; + + virtual weld::Dialog* getDialog() override { return m_xDialog.get(); } public: /** display an SQLException with auto-recognizing a main and a detailed message @@ -71,7 +89,7 @@ public: detailed field of an <type scope="css::sdb">SQLContext</type>). */ OSQLMessageBox( - vcl::Window* _pParent, + weld::Window* pParent, const dbtools::SQLExceptionInfo& _rException, MessBoxStyle _nStyle = MessBoxStyle::Ok | MessBoxStyle::DefaultOk, const OUString& _rHelpURL = OUString() @@ -83,23 +101,26 @@ public: @param rMessage the detailed message to display @param _eType determines the image to use. AUTO is disallowed in this constructor version */ - OSQLMessageBox(vcl::Window* pParent, + OSQLMessageBox(weld::Window* pParent, const OUString& rTitle, const OUString& rMessage, MessBoxStyle nStyle = MessBoxStyle::Ok | MessBoxStyle::DefaultOk, MessageType _eType = Info, const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo = nullptr ); + void set_title(const OUString& rTitle) { m_xDialog->set_title(rTitle); } + void add_button(const OUString& rText, int nResponse, const OString& rHelpId = OString()) { m_xDialog->add_button(rText, nResponse, rHelpId); } + void set_default_response(int nResponse) { m_xDialog->set_default_response(nResponse); } + virtual ~OSQLMessageBox() override; - virtual void dispose() override; private: - void Construct( MessBoxStyle nStyle, MessageType eImage ); + void Construct(weld::Window* pParent, MessBoxStyle nStyle, MessageType eImage); - DECL_LINK(ButtonClickHdl, Button*, void ); + DECL_LINK(ButtonClickHdl, weld::Button&, void); private: - void impl_positionControls(); + void impl_fillMessages(); void impl_createStandardButtons( MessBoxStyle _nStyle ); void impl_addDetailsButton(); }; @@ -108,7 +129,7 @@ private: class OSQLWarningBox : public OSQLMessageBox { public: - OSQLWarningBox( vcl::Window* _pParent, + OSQLWarningBox( weld::Window* pParent, const OUString& _rMessage, MessBoxStyle _nStyle = MessBoxStyle::Ok | MessBoxStyle::DefaultOk, const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo = nullptr ); @@ -118,7 +139,7 @@ public: class OSQLErrorBox : public OSQLMessageBox { public: - OSQLErrorBox( vcl::Window* _pParent, + OSQLErrorBox( weld::Window* pParent, const OUString& _rMessage ); }; diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx index 7127e8bb1171..09776126679d 100644 --- a/dbaccess/source/ui/misc/DExport.cxx +++ b/dbaccess/source/ui/misc/DExport.cxx @@ -748,9 +748,9 @@ void ODatabaseExport::showErrorDialog(const css::sdbc::SQLException& e) OUString aMsg = e.Message + "\n" + DBA_RES( STR_QRY_CONTINUE ); - ScopedVclPtrInstance< OSQLWarningBox > aBox( nullptr, aMsg, MessBoxStyle::YesNo | MessBoxStyle::DefaultNo ); + OSQLWarningBox aBox(nullptr, aMsg, MessBoxStyle::YesNo | MessBoxStyle::DefaultNo); - if (aBox->Execute() == RET_YES) + if (aBox.run() == RET_YES) m_bDontAskAgain = true; else m_bError = true; diff --git a/dbaccess/source/ui/misc/RowSetDrop.cxx b/dbaccess/source/ui/misc/RowSetDrop.cxx index efbd212e9356..cdf4ecbb7d35 100644 --- a/dbaccess/source/ui/misc/RowSetDrop.cxx +++ b/dbaccess/source/ui/misc/RowSetDrop.cxx @@ -237,8 +237,8 @@ bool ORowSetImportExport::insertNewRow() if(!m_bAlreadyAsked) { OUString sAskIfContinue = DBA_RES(STR_ERROR_OCCURRED_WHILE_COPYING); - ScopedVclPtrInstance< OSQLWarningBox > aDlg( m_pParent, sAskIfContinue, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes ); - if(aDlg->Execute() == RET_YES) + OSQLWarningBox aDlg(m_pParent ? m_pParent->GetFrameWeld() : nullptr, sAskIfContinue, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes); + if (aDlg.run() == RET_YES) m_bAlreadyAsked = true; else return false; diff --git a/dbaccess/source/ui/misc/UITools.cxx b/dbaccess/source/ui/misc/UITools.cxx index ec6c9a11afcc..41b0e9194f61 100644 --- a/dbaccess/source/ui/misc/UITools.cxx +++ b/dbaccess/source/ui/misc/UITools.cxx @@ -898,9 +898,9 @@ std::shared_ptr<const SfxFilter> getStandardDatabaseFilter() } bool appendToFilter(const Reference<XConnection>& _xConnection, - const OUString& _sName, - const Reference< XComponentContext >& _rxContext, - vcl::Window* _pParent) + const OUString& _sName, + const Reference< XComponentContext >& _rxContext, + weld::Window* pParent) { bool bRet = false; Reference< XChild> xChild(_xConnection,UNO_QUERY); @@ -931,7 +931,8 @@ bool appendToFilter(const Reference<XConnection>& _xConnection, if(! ::dbaui::checkDataSourceAvailable(::comphelper::getString(xProp->getPropertyValue(PROPERTY_NAME)),_rxContext)) { OUString aMessage(DBA_RES(STR_TABLEDESIGN_DATASOURCE_DELETED)); - ScopedVclPtrInstance<OSQLWarningBox>(_pParent, aMessage)->Execute(); + OSQLWarningBox aWarning(pParent, aMessage); + aWarning.run(); bRet = false; } else @@ -1197,18 +1198,17 @@ TOTypeInfoSP queryTypeInfoByType(sal_Int32 _nDataType,const OTypeInfoMap& _rType return pTypeInfo; } -sal_Int32 askForUserAction(vcl::Window* _pParent, const char* pTitle, const char* pText, bool _bAll, const OUString& _sName) +sal_Int32 askForUserAction(weld::Window* pParent, const char* pTitle, const char* pText, bool _bAll, const OUString& _sName) { SolarMutexGuard aGuard; OUString aMsg = DBA_RES(pText); aMsg = aMsg.replaceFirst("%1", _sName); - ScopedVclPtrInstance<OSQLMessageBox> aAsk(_pParent, DBA_RES(pTitle), aMsg,MessBoxStyle::YesNo | MessBoxStyle::DefaultYes,OSQLMessageBox::Query); + OSQLMessageBox aAsk(pParent, DBA_RES(pTitle), aMsg, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes, MessageType::Query); if ( _bAll ) { - aAsk->AddButton(DBA_RES(STR_BUTTON_TEXT_ALL), RET_ALL); - aAsk->GetPushButton(RET_ALL)->SetHelpId(HID_CONFIRM_DROP_BUTTON_ALL); + aAsk.add_button(DBA_RES(STR_BUTTON_TEXT_ALL), RET_ALL, HID_CONFIRM_DROP_BUTTON_ALL); } - return aAsk->Execute(); + return aAsk.run(); } namespace diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx index 544c33c49746..b989d3ab0f04 100644 --- a/dbaccess/source/ui/misc/WCopyTable.cxx +++ b/dbaccess/source/ui/misc/WCopyTable.cxx @@ -1242,7 +1242,7 @@ Reference< XPropertySet > OCopyTableWizard::createTable() { xSuppDestinationColumns.set( xTable, UNO_QUERY_THROW ); // insert new table name into table filter - ::dbaui::appendToFilter( m_xDestConnection, m_sName, GetComponentContext(), this ); + ::dbaui::appendToFilter(m_xDestConnection, m_sName, GetComponentContext(), GetFrameWeld()); // copy ui settings m_rSourceObject.copyUISettingsTo( xTable ); diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx index faa0274117b1..b25c72a78be1 100644 --- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx +++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx @@ -618,7 +618,8 @@ bool OSelectionBrowseBox::fillColumnRef(const OUString& _sColumnName, const OUSt { OUString sErrorMsg(DBA_RES(RID_STR_FIELD_DOESNT_EXIST)); sErrorMsg = sErrorMsg.replaceFirst("$name$",_sColumnName); - ScopedVclPtrInstance<OSQLErrorBox>(this, sErrorMsg)->Execute(); + OSQLErrorBox aWarning(GetFrameWeld(), sErrorMsg); + aWarning.run(); bError = true; } else @@ -722,7 +723,8 @@ bool OSelectionBrowseBox::saveField(OUString& _sFieldName ,OTableFieldDescRef co // something different which we have to check OUString sErrorMessage( DBA_RES( STR_QRY_COLUMN_NOT_FOUND ) ); sErrorMessage = sErrorMessage.replaceFirst("$name$",_sFieldName); - ScopedVclPtrInstance<OSQLErrorBox>(this, sErrorMessage)->Execute(); + OSQLErrorBox aWarning(GetFrameWeld(), sErrorMessage); + aWarning.run(); return true; } @@ -878,7 +880,8 @@ bool OSelectionBrowseBox::saveField(OUString& _sFieldName ,OTableFieldDescRef co { // the field could not be inserted OUString sErrorMessage( DBA_RES( RID_STR_FIELD_DOESNT_EXIST ) ); sErrorMessage = sErrorMessage.replaceFirst("$name$",aSelEntry->GetField()); - ScopedVclPtrInstance<OSQLErrorBox>(this, sErrorMessage)->Execute(); + OSQLErrorBox aWarning(GetFrameWeld(), sErrorMessage); + aWarning.run(); bError = true; } } @@ -1145,7 +1148,8 @@ bool OSelectionBrowseBox::SaveModified() { if ( !m_bDisableErrorBox ) { - ScopedVclPtrInstance<OSQLWarningBox>(this, aErrorMsg)->Execute(); + OSQLWarningBox aWarning(GetFrameWeld(), aErrorMsg); + aWarning.run(); } bError = true; } @@ -1154,7 +1158,8 @@ bool OSelectionBrowseBox::SaveModified() { if ( !m_bDisableErrorBox ) { - ScopedVclPtrInstance<OSQLWarningBox>(this, aErrorMsg)->Execute(); + OSQLWarningBox aWarning(GetFrameWeld(), aErrorMsg); + aWarning.run(); } bError = true; } diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx index dfaefadee854..a73c986b9eae 100644 --- a/dbaccess/source/ui/querydesign/querycontroller.cxx +++ b/dbaccess/source/ui/querydesign/querycontroller.cxx @@ -940,9 +940,8 @@ void OQueryController::impl_initialize() { OUString aTitle(DBA_RES(STR_QUERYDESIGN_NO_VIEW_SUPPORT)); OUString aMessage(DBA_RES(STR_QUERYDESIGN_NO_VIEW_ASK)); - ODataView* pWindow = getView(); - ScopedVclPtrInstance< OSQLMessageBox > aDlg( pWindow, aTitle, aMessage, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes, OSQLMessageBox::Query ); - bClose = aDlg->Execute() == RET_NO; + OSQLMessageBox aDlg(getFrameWeld(), aTitle, aMessage, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes, MessageType::Query); + bClose = aDlg.run() == RET_NO; } if ( bClose ) throw VetoException(); @@ -1013,8 +1012,8 @@ void OQueryController::impl_initialize() { m_bGraphicalDesign = false; getContainer()->initialize(); - ODataView* pWindow = getView(); - ScopedVclPtrInstance<OSQLMessageBox>(pWindow,e)->Execute(); + OSQLMessageBox aBox(getFrameWeld(), e); + aBox.run(); } throw; } @@ -1365,7 +1364,8 @@ bool OQueryController::doSaveAsDoc(bool _bSaveAs) if ( !editingCommand() && !haveDataSource() ) { OUString aMessage(DBA_RES(STR_DATASOURCE_DELETED)); - ScopedVclPtrInstance<OSQLWarningBox>(getView(), aMessage)->Execute(); + OSQLWarningBox aBox(getFrameWeld(), aMessage); + aBox.run(); return false; } @@ -1496,7 +1496,7 @@ bool OQueryController::doSaveAsDoc(bool _bSaveAs) m_xAlterView.set( xElements->getByName( m_sName ), UNO_QUERY ); // now check if our datasource has set a tablefilter and if so, append the new table name to it - ::dbaui::appendToFilter( getConnection(), m_sName, getORB(), getView() ); + ::dbaui::appendToFilter(getConnection(), m_sName, getORB(), getFrameWeld()); } Reference< XTitleChangeListener> xEventListener(impl_getTitleHelper_throw(),UNO_QUERY); if ( xEventListener.is() ) @@ -1854,8 +1854,8 @@ void OQueryController::impl_reset( const bool i_bForceCurrentControllerSettings if ( !i_bForceCurrentControllerSettings && !editingView() ) { OUString aTitle(DBA_RES(STR_SVT_SQL_SYNTAX_ERROR)); - ScopedVclPtrInstance< OSQLMessageBox > aDlg(getView(),aTitle,aErrorMsg); - aDlg->Execute(); + OSQLMessageBox aDlg(getFrameWeld(), aTitle, aErrorMsg); + aDlg.run(); } bError = true; } diff --git a/dbaccess/source/ui/relationdesign/RelationController.cxx b/dbaccess/source/ui/relationdesign/RelationController.cxx index 316080ebca42..e5a401e427f8 100644 --- a/dbaccess/source/ui/relationdesign/RelationController.cxx +++ b/dbaccess/source/ui/relationdesign/RelationController.cxx @@ -162,7 +162,8 @@ void ORelationController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue if(!::dbaui::checkDataSourceAvailable(::comphelper::getString(getDataSource()->getPropertyValue(PROPERTY_NAME)), getORB())) { OUString aMessage(DBA_RES(STR_DATASOURCE_DELETED)); - ScopedVclPtrInstance<OSQLWarningBox>(getView(), aMessage)->Execute(); + OSQLWarningBox aWarning(getFrameWeld(), aMessage); + aWarning.run(); } else { @@ -207,8 +208,8 @@ void ORelationController::impl_initialize() { OUString sTitle(DBA_RES(STR_RELATIONDESIGN)); sTitle = sTitle.copy(3); - ScopedVclPtrInstance< OSQLMessageBox > aDlg(nullptr,sTitle,DBA_RES(STR_RELATIONDESIGN_NOT_AVAILABLE)); - aDlg->Execute(); + OSQLMessageBox aDlg(getFrameWeld(), sTitle, DBA_RES(STR_RELATIONDESIGN_NOT_AVAILABLE)); + aDlg.run(); } disconnect(); throw SQLException(); diff --git a/dbaccess/source/ui/relationdesign/RelationTableView.cxx b/dbaccess/source/ui/relationdesign/RelationTableView.cxx index 006b8033e44a..7c9827489458 100644 --- a/dbaccess/source/ui/relationdesign/RelationTableView.cxx +++ b/dbaccess/source/ui/relationdesign/RelationTableView.cxx @@ -323,8 +323,8 @@ void ORelationTableView::AddTabWin(const OUString& _rComposedName, const OUStrin void ORelationTableView::RemoveTabWin( OTableWindow* pTabWin ) { - ScopedVclPtrInstance< OSQLWarningBox > aDlg( this, DBA_RES( STR_QUERY_REL_DELETE_WINDOW ), MessBoxStyle::YesNo | MessBoxStyle::DefaultYes ); - if ( m_bInRemove || aDlg->Execute() == RET_YES ) + OSQLWarningBox aDlg(GetFrameWeld(), DBA_RES(STR_QUERY_REL_DELETE_WINDOW), MessBoxStyle::YesNo | MessBoxStyle::DefaultYes); + if (m_bInRemove || aDlg.run() == RET_YES) { m_pView->getController().ClearUndoManager(); OJoinTableView::RemoveTabWin( pTabWin ); @@ -341,14 +341,14 @@ void ORelationTableView::lookForUiActivities() { OUString sTitle(DBA_RES(STR_RELATIONDESIGN)); sTitle = sTitle.copy(3); - ScopedVclPtrInstance< OSQLMessageBox > aDlg(this,DBA_RES(STR_QUERY_REL_EDIT_RELATION),OUString(),MessBoxStyle::NONE); - aDlg->SetText(sTitle); - aDlg->RemoveButton(aDlg->GetButtonId(0)); - aDlg->AddButton( DBA_RES(STR_QUERY_REL_EDIT), RET_OK, ButtonDialogFlags::Default | ButtonDialogFlags::Focus); - aDlg->AddButton( DBA_RES(STR_QUERY_REL_CREATE), RET_YES); - aDlg->AddButton( StandardButtonType::Cancel,RET_CANCEL); - sal_uInt16 nRet = aDlg->Execute(); - if( nRet == RET_CANCEL) + OSQLMessageBox aDlg(GetFrameWeld(), DBA_RES(STR_QUERY_REL_EDIT_RELATION), OUString(), MessBoxStyle::NONE); + aDlg.set_title(sTitle); + aDlg.add_button(DBA_RES(STR_QUERY_REL_EDIT), RET_OK); + aDlg.set_default_response(RET_OK); + aDlg.add_button(DBA_RES(STR_QUERY_REL_CREATE), RET_YES); + aDlg.add_button(Button::GetStandardText(StandardButtonType::Cancel), RET_CANCEL); + sal_uInt16 nRet = aDlg.run(); + if (nRet == RET_CANCEL) { m_pCurrentlyTabConnData.reset(); } diff --git a/dbaccess/source/ui/tabledesign/TableController.cxx b/dbaccess/source/ui/tabledesign/TableController.cxx index 56509b1a843a..93b08c02ab21 100644 --- a/dbaccess/source/ui/tabledesign/TableController.cxx +++ b/dbaccess/source/ui/tabledesign/TableController.cxx @@ -274,7 +274,8 @@ bool OTableController::doSaveDoc(bool _bSaveAs) if (!xTablesSup.is()) { OUString aMessage(DBA_RES(STR_TABLEDESIGN_CONNECTION_MISSING)); - ScopedVclPtrInstance<OSQLWarningBox>(getView(), aMessage )->Execute(); + OSQLWarningBox aWarning(getFrameWeld(), aMessage); + aWarning.run(); return false; } @@ -372,7 +373,7 @@ bool OTableController::doSaveDoc(bool _bSaveAs) assignTable(); } // now check if our datasource has set a tablefilter and if append the new table name to it - ::dbaui::appendToFilter(getConnection(),m_sName,getORB(),getView()); // we are not interessted in the return value + ::dbaui::appendToFilter(getConnection(), m_sName, getORB(), getFrameWeld()); // we are not interessted in the return value Reference< frame::XTitleChangeListener> xEventListener(impl_getTitleHelper_throw(),UNO_QUERY); if ( xEventListener.is() ) { @@ -404,9 +405,8 @@ bool OTableController::doSaveDoc(bool _bSaveAs) { OUString sText( DBA_RES( STR_NAME_ALREADY_EXISTS ) ); sText = sText.replaceFirst( "#" , m_sName); - ScopedVclPtrInstance< OSQLMessageBox > aDlg( getView(), DBA_RES( STR_ERROR_DURING_CREATION ), sText, MessBoxStyle::Ok, OSQLMessageBox::Error ); - - aDlg->Execute(); + OSQLMessageBox aDlg(getFrameWeld(), DBA_RES( STR_ERROR_DURING_CREATION ), sText, MessBoxStyle::Ok, MessageType::Error); + aDlg.run(); bError = true; } catch( const Exception& ) @@ -513,7 +513,8 @@ void OTableController::impl_initialize() } catch(const SQLException&) { - ScopedVclPtrInstance<OSQLWarningBox>(getView(), DBA_RES( STR_NO_TYPE_INFO_AVAILABLE ))->Execute(); + OSQLWarningBox aWarning(getFrameWeld(), DBA_RES( STR_NO_TYPE_INFO_AVAILABLE)); + aWarning.run(); throw; } try @@ -914,7 +915,8 @@ bool OTableController::checkColumns(bool _bNew) { OUString strMessage = DBA_RES(STR_TABLEDESIGN_DUPLICATE_NAME); strMessage = strMessage.replaceFirst("$column$", pFieldDesc->GetName()); - ScopedVclPtrInstance<OSQLWarningBox>(getView(), strMessage)->Execute(); + OSQLWarningBox aWarning(getFrameWeld(), strMessage); + aWarning.run(); return false; } } @@ -924,9 +926,9 @@ bool OTableController::checkColumns(bool _bNew) { OUString sTitle(DBA_RES(STR_TABLEDESIGN_NO_PRIM_KEY_HEAD)); OUString sMsg(DBA_RES(STR_TABLEDESIGN_NO_PRIM_KEY)); - ScopedVclPtrInstance< OSQLMessageBox > aBox(getView(), sTitle,sMsg, MessBoxStyle::YesNoCancel | MessBoxStyle::DefaultYes); + OSQLMessageBox aBox(getFrameWeld(), sTitle,sMsg, MessBoxStyle::YesNoCancel | MessBoxStyle::DefaultYes); - switch ( aBox->Execute() ) + switch (aBox.run()) { case RET_YES: { @@ -1055,8 +1057,8 @@ void OTableController::alterColumns() aMessage = aMessage.replaceFirst( "$column$", pField->GetName() ); SQLExceptionInfo aError( ::cppu::getCaughtException() ); - ScopedVclPtrInstance< OSQLWarningBox > aMsg( getView(), aMessage, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes , &aError ); - bNotOk = aMsg->Execute() == RET_YES; + OSQLWarningBox aMsg(getFrameWeld(), aMessage, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes , &aError); + bNotOk = aMsg.run() == RET_YES; } else throw; @@ -1112,8 +1114,8 @@ void OTableController::alterColumns() { OUString aMessage(DBA_RES(STR_TABLEDESIGN_ALTER_ERROR)); aMessage = aMessage.replaceFirst("$column$",pField->GetName()); - ScopedVclPtrInstance< OSQLWarningBox > aMsg( getView(), aMessage, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes, &aError); - if ( aMsg->Execute() != RET_YES ) + OSQLWarningBox aMsg(getFrameWeld(), aMessage, MessBoxStyle::YesNo | MessBoxStyle::DefaultYes, &aError); + if (aMsg.run() != RET_YES) { Reference<XPropertySet> xNewColumn(xIdxColumns->getByIndex(nPos),UNO_QUERY_THROW); OUString sName; @@ -1175,8 +1177,8 @@ void OTableController::alterColumns() OUString aMsgT(DBA_RES(STR_TBL_COLUMN_IS_KEYCOLUMN)); aMsgT = aMsgT.replaceFirst("$column$",rColumnName); OUString aTitle(DBA_RES(STR_TBL_COLUMN_IS_KEYCOLUMN_TITLE)); - ScopedVclPtrInstance< OSQLMessageBox > aMsg(getView(),aTitle,aMsgT,MessBoxStyle::YesNo| MessBoxStyle::DefaultYes); - if(aMsg->Execute() == RET_YES) + OSQLMessageBox aMsg(getFrameWeld(), aTitle, aMsgT, MessBoxStyle::YesNo| MessBoxStyle::DefaultYes); + if (aMsg.run() == RET_YES) { xKeyColumns = nullptr; dropPrimaryKey(); diff --git a/dbaccess/source/ui/uno/dbinteraction.cxx b/dbaccess/source/ui/uno/dbinteraction.cxx index af7995263938..62704b5397a5 100644 --- a/dbaccess/source/ui/uno/dbinteraction.cxx +++ b/dbaccess/source/ui/uno/dbinteraction.cxx @@ -180,9 +180,9 @@ namespace dbaui } // execute the dialog - ScopedVclPtrInstance< OSQLMessageBox > aDialog(nullptr, _rSqlInfo, nDialogStyle); + OSQLMessageBox aDialog(nullptr, _rSqlInfo, nDialogStyle); // TODO: need a way to specify the parent window - sal_Int16 nResult = aDialog->Execute(); + sal_Int16 nResult = aDialog.run(); try { switch (nResult) diff --git a/dbaccess/source/ui/uno/unosqlmessage.cxx b/dbaccess/source/ui/uno/unosqlmessage.cxx index 7b8158855535..c5b849bdd241 100644 --- a/dbaccess/source/ui/uno/unosqlmessage.cxx +++ b/dbaccess/source/ui/uno/unosqlmessage.cxx @@ -27,6 +27,7 @@ #include <comphelper/propertysequence.hxx> #include <cppuhelper/typeprovider.hxx> #include <connectivity/dbexception.hxx> +#include <vcl/dialog.hxx> using namespace dbaui; using namespace dbtools; @@ -145,11 +146,12 @@ Reference<XPropertySetInfo> SAL_CALL OSQLMessageDialog::getPropertySetInfo() svt::OGenericUnoDialog::Dialog OSQLMessageDialog::createDialog(vcl::Window* _pParent) { + weld::Window* pParent = _pParent ? _pParent->GetFrameWeld() : nullptr; if ( m_aException.hasValue() ) - return svt::OGenericUnoDialog::Dialog(VclPtr<OSQLMessageBox>::Create(_pParent, SQLExceptionInfo(m_aException), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, m_sHelpURL)); + return svt::OGenericUnoDialog::Dialog(new OSQLMessageBox(pParent, SQLExceptionInfo(m_aException), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, m_sHelpURL)); OSL_FAIL("OSQLMessageDialog::createDialog : You should use the SQLException property to specify the error to display!"); - return svt::OGenericUnoDialog::Dialog(VclPtr<OSQLMessageBox>::Create(_pParent, SQLException())); + return svt::OGenericUnoDialog::Dialog(new OSQLMessageBox(pParent, SQLException())); } } // namespace dbaui |