diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-02-25 11:43:17 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-02-25 22:05:14 +0100 |
commit | ecefb04ed64656c4c25ac6960d71be35ece6a583 (patch) | |
tree | 60fc7a343a9851b57a307413c92ff17a0690947f /desktop/source/deployment/gui | |
parent | ac40c9aa8f3db53c73283390701cd08a564204cc (diff) |
weld UpdateInstallDialog
Change-Id: I56f1de2ac91076a35f1f3583d7500e5b2fa4ce54
Reviewed-on: https://gerrit.libreoffice.org/68315
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'desktop/source/deployment/gui')
3 files changed, 64 insertions, 82 deletions
diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx index e0307f0cd142..e0dc0b36e92b 100644 --- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx +++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx @@ -915,7 +915,8 @@ void ExtensionCmdQueue::Thread::_checkForUpdates( short nDialogResult = RET_OK; if ( !dataDownload.empty() ) { - nDialogResult = ScopedVclPtrInstance<UpdateInstallDialog>( m_pDialogHelper? m_pDialogHelper->getWindow() : nullptr, dataDownload, m_xContext )->Execute(); + UpdateInstallDialog aDlg(m_pDialogHelper? m_pDialogHelper->getFrameWeld() : nullptr, dataDownload, m_xContext); + nDialogResult = aDlg.run(); pUpdateDialog->notifyMenubar( false, true ); // Check, if there are still pending updates to be notified via menu bar icon } else diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx index 8ab299c8b46a..025d556b169f 100644 --- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx +++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx @@ -191,80 +191,62 @@ void UpdateInstallDialog::Thread::execute() } UpdateInstallDialog::UpdateInstallDialog( - vcl::Window * parent, + weld::Window* pParent, std::vector<dp_gui::UpdateData> & aVecUpdateData, - cssu::Reference< cssu::XComponentContext > const & xCtx): - ModalDialog( - parent, - "UpdateInstallDialog","desktop/ui/updateinstalldialog.ui"), - - m_thread(new Thread(xCtx, *this, aVecUpdateData)), - m_bError(false), - m_bNoEntry(true), - m_sInstalling(DpResId(RID_DLG_UPDATE_INSTALL_INSTALLING)), - m_sFinished(DpResId(RID_DLG_UPDATE_INSTALL_FINISHED)), - m_sNoErrors(DpResId(RID_DLG_UPDATE_INSTALL_NO_ERRORS)), - m_sErrorDownload(DpResId(RID_DLG_UPDATE_INSTALL_ERROR_DOWNLOAD)), - m_sErrorInstallation(DpResId(RID_DLG_UPDATE_INSTALL_ERROR_INSTALLATION)), - m_sErrorLicenseDeclined(DpResId(RID_DLG_UPDATE_INSTALL_ERROR_LIC_DECLINED)), - m_sNoInstall(DpResId(RID_DLG_UPDATE_INSTALL_EXTENSION_NOINSTALL)), - m_sThisErrorOccurred(DpResId(RID_DLG_UPDATE_INSTALL_THIS_ERROR_OCCURRED)) + cssu::Reference< cssu::XComponentContext > const & xCtx) + : GenericDialogController(pParent, "desktop/ui/updateinstalldialog.ui", + "UpdateInstallDialog") + , m_thread(new Thread(xCtx, *this, aVecUpdateData)) + , m_bError(false) + , m_bNoEntry(true) + , m_sInstalling(DpResId(RID_DLG_UPDATE_INSTALL_INSTALLING)) + , m_sFinished(DpResId(RID_DLG_UPDATE_INSTALL_FINISHED)) + , m_sNoErrors(DpResId(RID_DLG_UPDATE_INSTALL_NO_ERRORS)) + , m_sErrorDownload(DpResId(RID_DLG_UPDATE_INSTALL_ERROR_DOWNLOAD)) + , m_sErrorInstallation(DpResId(RID_DLG_UPDATE_INSTALL_ERROR_INSTALLATION)) + , m_sErrorLicenseDeclined(DpResId(RID_DLG_UPDATE_INSTALL_ERROR_LIC_DECLINED)) + , m_sNoInstall(DpResId(RID_DLG_UPDATE_INSTALL_EXTENSION_NOINSTALL)) + , m_sThisErrorOccurred(DpResId(RID_DLG_UPDATE_INSTALL_THIS_ERROR_OCCURRED)) + , m_xFt_action(m_xBuilder->weld_label("DOWNLOADING")) + , m_xStatusbar(m_xBuilder->weld_progress_bar("STATUSBAR")) + , m_xFt_extension_name(m_xBuilder->weld_label("EXTENSION_NAME")) + , m_xMle_info(m_xBuilder->weld_text_view("INFO")) + , m_xHelp(m_xBuilder->weld_button("help")) + , m_xOk(m_xBuilder->weld_button("ok")) + , m_xCancel(m_xBuilder->weld_button("cancel")) { - get(m_pFt_action, "DOWNLOADING"); - get(m_pStatusbar, "STATUSBAR"); - get(m_pFt_extension_name, "EXTENSION_NAME"); - get(m_pMle_info, "INFO"); - m_pMle_info->set_height_request(m_pMle_info->GetTextHeight() * 5); - m_pMle_info->set_width_request(m_pMle_info->approximate_char_width() * 56); - get(m_pHelp, "help"); - get(m_pOk, "ok"); - get(m_pCancel, "cancel"); + m_xMle_info->set_size_request(m_xMle_info->get_approximate_digit_width() * 52, + m_xMle_info->get_height_rows(5)); m_xExtensionManager = css::deployment::ExtensionManager::get( xCtx ); - m_pCancel->SetClickHdl(LINK(this, UpdateInstallDialog, cancelHandler)); + m_xCancel->connect_clicked(LINK(this, UpdateInstallDialog, cancelHandler)); if ( ! dp_misc::office_is_running()) - m_pHelp->Disable(); + m_xHelp->set_sensitive(false); } UpdateInstallDialog::~UpdateInstallDialog() { - disposeOnce(); } -void UpdateInstallDialog::dispose() -{ - m_pFt_action.clear(); - m_pStatusbar.clear(); - m_pFt_extension_name.clear(); - m_pMle_info.clear(); - m_pHelp.clear(); - m_pOk.clear(); - m_pCancel.clear(); - ModalDialog::dispose(); -} - -bool UpdateInstallDialog::Close() -{ - m_thread->stop(); - return ModalDialog::Close(); -} - -short UpdateInstallDialog::Execute() +short UpdateInstallDialog::run() { m_thread->launch(); - return ModalDialog::Execute(); + short nRet = GenericDialogController::run(); + m_thread->stop(); + return nRet; } // make sure the solar mutex is locked before calling void UpdateInstallDialog::updateDone() { if (!m_bError) - m_pMle_info->SetText(m_pMle_info->GetText() + m_sNoErrors); - m_pOk->Enable(); - m_pOk->GrabFocus(); - m_pCancel->Disable(); + m_xMle_info->set_text(m_xMle_info->get_text() + m_sNoErrors); + m_xOk->set_sensitive(true); + m_xOk->grab_focus(); + m_xCancel->set_sensitive(false); } + // make sure the solar mutex is locked before calling //sets an error message in the text area void UpdateInstallDialog::setError(INSTALL_ERROR err, OUString const & sExtension, @@ -289,7 +271,7 @@ void UpdateInstallDialog::setError(INSTALL_ERROR err, OUString const & sExtensio OSL_ASSERT(false); } - OUString sMsg(m_pMle_info->GetText()); + OUString sMsg(m_xMle_info->get_text()); sError = sError.replaceFirst("%NAME", sExtension); //We want to have an empty line between the error messages. However, //there shall be no empty line after the last entry. @@ -304,19 +286,18 @@ void UpdateInstallDialog::setError(INSTALL_ERROR err, OUString const & sExtensio sMsg += m_sNoInstall + "\n"; - m_pMle_info->SetText(sMsg); + m_xMle_info->set_text(sMsg); } void UpdateInstallDialog::setError(OUString const & exceptionMessage) { m_bError = true; - m_pMle_info->SetText(m_pMle_info->GetText() + exceptionMessage + "\n"); + m_xMle_info->set_text(m_xMle_info->get_text() + exceptionMessage + "\n"); } -IMPL_LINK_NOARG(UpdateInstallDialog, cancelHandler, Button*, void) +IMPL_LINK_NOARG(UpdateInstallDialog, cancelHandler, weld::Button&, void) { - m_thread->stop(); - EndDialog(); + m_xDialog->response(RET_CANCEL); } void UpdateInstallDialog::Thread::downloadExtensions() @@ -365,10 +346,10 @@ void UpdateInstallDialog::Thread::downloadExtensions() if (m_stop) { return; } - m_dialog.m_pFt_extension_name->SetText(updateData.aInstalledPackage->getDisplayName()); + m_dialog.m_xFt_extension_name->set_label(updateData.aInstalledPackage->getDisplayName()); sal_uInt16 prog = (sal::static_int_cast<sal_uInt16>(100) * ++count) / sal::static_int_cast<sal_uInt16>(m_aVecUpdateData.size()); - m_dialog.m_pStatusbar->SetValue(prog); + m_dialog.m_xStatusbar->set_percentage(prog); } dp_misc::DescriptionInfoset info(m_xComponentContext, updateData.aUpdateInfo); //remember occurring exceptions in case we need to print out error information @@ -439,8 +420,8 @@ void UpdateInstallDialog::Thread::installExtensions() if (m_stop) { return; } - m_dialog.m_pFt_action->SetText(m_dialog.m_sInstalling); - m_dialog.m_pStatusbar->SetValue(0); + m_dialog.m_xFt_action->set_label(m_dialog.m_sInstalling); + m_dialog.m_xStatusbar->set_percentage(0); } sal_uInt16 count = 0; @@ -454,11 +435,11 @@ void UpdateInstallDialog::Thread::installExtensions() } //we only show progress after an extension has been installed. if (count > 0) { - m_dialog.m_pStatusbar->SetValue( + m_dialog.m_xStatusbar->set_percentage( (sal::static_int_cast<sal_uInt16>(100) * count) / sal::static_int_cast<sal_uInt16>(m_aVecUpdateData.size())); } - m_dialog.m_pFt_extension_name->SetText(updateData.aInstalledPackage->getDisplayName()); + m_dialog.m_xFt_extension_name->set_label(updateData.aInstalledPackage->getDisplayName()); } bool bError = false; bool bLicenseDeclined = false; @@ -548,9 +529,9 @@ void UpdateInstallDialog::Thread::installExtensions() if (m_stop) { return; } - m_dialog.m_pStatusbar->SetValue(100); - m_dialog.m_pFt_extension_name->SetText(OUString()); - m_dialog.m_pFt_action->SetText(m_dialog.m_sFinished); + m_dialog.m_xStatusbar->set_percentage(100); + m_dialog.m_xFt_extension_name->set_label(OUString()); + m_dialog.m_xFt_action->set_label(m_dialog.m_sFinished); } } diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx index 1b3ee4927625..6b232b5a954a 100644 --- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx +++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx @@ -26,6 +26,7 @@ #include <vcl/dialog.hxx> #include <vcl/prgsbar.hxx> #include <vcl/vclmedit.hxx> +#include <vcl/weld.hxx> #include <rtl/ref.hxx> #include <vector> @@ -48,7 +49,8 @@ namespace dp_gui { /** The modal “Download and Installation” dialog. */ -class UpdateInstallDialog: public ModalDialog { +class UpdateInstallDialog : public weld::GenericDialogController +{ public: /** Create an instance. @@ -56,14 +58,12 @@ public: @param parent the parent window, may be null */ - UpdateInstallDialog(vcl::Window * parent, std::vector<UpdateData> & aVecUpdateData, + UpdateInstallDialog(weld::Window* parent, std::vector<UpdateData> & aVecUpdateData, css::uno::Reference< css::uno::XComponentContext > const & xCtx); virtual ~UpdateInstallDialog() override; - virtual void dispose() override; - bool Close() override; - virtual short Execute() override; + virtual short run() override; private: UpdateInstallDialog(UpdateInstallDialog const &) = delete; @@ -73,7 +73,7 @@ private: friend class Thread; friend class UpdateCommandEnv; - DECL_LINK(cancelHandler, Button*, void); + DECL_LINK(cancelHandler, weld::Button&, void); //signals in the dialog that we have finished. void updateDone(); @@ -104,13 +104,13 @@ private: OUString m_sNoInstall; OUString m_sThisErrorOccurred; - VclPtr<FixedText> m_pFt_action; - VclPtr<ProgressBar> m_pStatusbar; - VclPtr<FixedText> m_pFt_extension_name; - VclPtr<VclMultiLineEdit> m_pMle_info; - VclPtr<HelpButton> m_pHelp; - VclPtr<OKButton> m_pOk; - VclPtr<CancelButton> m_pCancel; + std::unique_ptr<weld::Label> m_xFt_action; + std::unique_ptr<weld::ProgressBar> m_xStatusbar; + std::unique_ptr<weld::Label> m_xFt_extension_name; + std::unique_ptr<weld::TextView> m_xMle_info; + std::unique_ptr<weld::Button> m_xHelp; + std::unique_ptr<weld::Button> m_xOk; + std::unique_ptr<weld::Button> m_xCancel; }; } |