20#include <config_extensions.h>
35#include <fpicker/strings.hrc>
41#include <osl/mutex.hxx>
43#include <rtl/ustrbuf.hxx>
58#include <com/sun/star/deployment/DeploymentException.hpp>
59#include <com/sun/star/lang/IllegalArgumentException.hpp>
60#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
61#include <com/sun/star/system/SystemShellExecute.hpp>
63#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
64#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
65#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
67#include <officecfg/Office/ExtensionManager.hxx>
74using namespace ::com::sun::star::system;
109 , m_bInterfaceLocked(false)
151 bool bShowOptionBtn =
true;
153 rEntry->m_bHasButtons =
false;
161 bShowOptionBtn =
false;
164 if ( ( !rEntry->m_bUser || ( rEntry->m_eState ==
NOT_AVAILABLE ) || rEntry->m_bMissingDeps )
165 && !rEntry->m_bMissingLic )
172 rEntry->m_bHasButtons =
true;
175 if ( rEntry->m_bHasOptions && bShowOptionBtn )
178 rEntry->m_bHasButtons =
true;
185 if ( rEntry->m_bUser || rEntry->m_bShared )
188 rEntry->m_bHasButtons =
true;
198 if (rCEvt.
GetCommand() != CommandEventId::ContextMenu)
205 if (sCommand ==
"CMD_ENABLE")
207 else if (sCommand ==
"CMD_DISABLE")
209 else if (sCommand ==
"CMD_UPDATE")
211 else if (sCommand ==
"CMD_REMOVE")
213 else if (sCommand ==
"CMD_SHOW_LICENSE")
230 std::unique_ptr<weld::Menu> xPopup(xBuilder->weld_menu(
"menu"));
232#if ENABLE_EXTENSION_UPDATE
233 xPopup->append(
"CMD_UPDATE",
DpResId( RID_CTX_ITEM_CHECK_UPDATE ) );
241 xPopup->append(
"CMD_DISABLE",
DpResId(RID_CTX_ITEM_DISABLE));
243 xPopup->append(
"CMD_ENABLE",
DpResId(RID_CTX_ITEM_ENABLE));
245 if (!officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionRemoval::get())
247 xPopup->append(
"CMD_REMOVE",
DpResId(RID_CTX_ITEM_REMOVE));
252 xPopup->append(
"CMD_SHOW_LICENSE",
DpResId(RID_STR_SHOW_LICENSE_CMD));
287 , m_nEventID(nullptr)
314 VclMessageType::Warning, VclButtonsType::OkCancel,
DpResId(pResID)));
317 bool bRet =
RET_OK == xBox->run();
328 if ( sURL.isEmpty() )
336 xSystemShellExecute->execute( sURL, OUString(), SystemShellExecuteFlags::URIS_ONLY );
338 catch (
const uno::Exception& )
340 uno::Any exc( ::cppu::getCaughtException() );
341 OUString msg( ::comphelper::anyToString( exc ) );
345 VclMessageType::Warning, VclButtonsType::Ok, msg));
346 xErrorBox->set_title(sTitle);
358 if (officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionInstallation::get())
362 VclMessageType::Warning, VclButtonsType::Ok,
363 DpResId(RID_STR_WARNING_INSTALL_EXTENSION_DISABLED)));
373 VclMessageType::Warning, VclButtonsType::OkCancel,
374 DpResId(RID_STR_WARNING_INSTALL_EXTENSION)));
375 OUString sText(xInfoBox->get_primary_text());
376 sText = sText.replaceAll(
"%NAME", rExtensionName);
377 xInfoBox->set_primary_text(sText);
379 bool bRet =
RET_OK == xInfoBox->run();
390 std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(
"InstallForAllDialog"));
391 short nRet = xQuery->run();
397 bInstallForAll = ( nRet ==
RET_NO );
411 : GenericDialogController(pParent,
"desktop/ui/extensionmanager.ui",
"ExtensionManagerDialog")
413 , m_sAddPackages(
DpResId(RID_STR_ADD_PACKAGES))
414 , m_bHasProgress(false)
415 , m_bProgressChanged(false)
416 , m_bStartProgress(false)
417 , m_bStopProgress(false)
418 , m_bEnableWarning(false)
419 , m_bDisableWarning(false)
420 , m_bDeleteWarning(false)
423 , m_aIdle(
"ExtMgrDialog m_aIdle TimeOutHdl" )
425 , m_xExtensionBox(new
ExtBoxWithBtns_Impl(m_xBuilder->weld_scrolled_window(
"scroll", true)))
426 , m_xExtensionBoxWnd(new
weld::CustomWeld(*m_xBuilder,
"extensions", *m_xExtensionBox))
427 , m_xOptionsBtn(m_xBuilder->weld_button(
"optionsbtn"))
428 , m_xAddBtn(m_xBuilder->weld_button(
"addbtn"))
429 , m_xRemoveBtn(m_xBuilder->weld_button(
"removebtn"))
430 , m_xEnableBtn(m_xBuilder->weld_button(
"enablebtn"))
431 , m_xUpdateBtn(m_xBuilder->weld_button(
"updatebtn"))
432 , m_xCloseBtn(m_xBuilder->weld_button(
"close"))
433 , m_xBundledCbx(m_xBuilder->weld_check_button(
"bundled"))
434 , m_xSharedCbx(m_xBuilder->weld_check_button(
"shared"))
435 , m_xUserCbx(m_xBuilder->weld_check_button(
"user"))
436 , m_xGetExtensions(m_xBuilder->weld_link_button(
"getextensions"))
437 , m_xProgressText(m_xBuilder->weld_label(
"progressft"))
438 , m_xProgressBar(m_xBuilder->weld_progress_bar(
"progressbar"))
439 , m_xCancelBtn(m_xBuilder->weld_button(
"cancel"))
440 , m_xSearchEntry(m_xBuilder->weld_entry(
"search"))
466#if ENABLE_EXTENSION_UPDATE
473 if (officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionInstallation::get())
476 m_xAddBtn->set_tooltip_text(
DpResId(RID_STR_WARNING_INSTALL_EXTENSION_DISABLED));
478 if (officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionRemoval::get())
499 bool bLicenseMissing )
506 && xPackage->getDisplayName().toAsciiLowerCase().indexOf(
554 VclMessageType::Warning, VclButtonsType::OkCancel,
555 DpResId(RID_STR_WARNING_REMOVE_EXTENSION)));
557 OUString sText(xInfoBox->get_primary_text());
558 sText = sText.replaceAll(
"%NAME", rExtensionName);
559 xInfoBox->set_primary_text(sText);
561 bool bRet =
RET_OK == xInfoBox->run();
571 if ( !xPackage.is() )
591 if ( !xPackage.is() )
609 if ( !xPackage.is() )
618 OSL_ASSERT(extension.is());
619 std::vector< css::uno::Reference< css::deployment::XPackage > > vEntries { extension };
627 if ( !xPackage.is() )
644 typedef std::map< OUString, OUString > t_string2string;
645 t_string2string title2filter;
646 OUStringBuffer supportedFilters;
653 const OUString
filter( xPackageType->getFileFilter() );
656 const OUString title( xPackageType->getShortDescription() );
657 const std::pair< t_string2string::iterator, bool > insertion(
658 title2filter.emplace( title,
filter ) );
659 if (!supportedFilters.isEmpty())
660 supportedFilters.append(
';');
661 supportedFilters.append(
filter);
662 if ( ! insertion.second )
664 insertion.first->second = insertion.first->second +
670 static const OUString StrAllFiles = []()
678 xFilePicker->appendFilter( StrAllFiles,
"*.*" );
679 xFilePicker->appendFilter(
DpResId(RID_STR_ALL_SUPPORTED), supportedFilters.makeStringAndClear() );
681 for (
auto const& elem : title2filter)
685 xFilePicker->appendFilter( elem.first, elem.second );
687 catch (
const lang::IllegalArgumentException &)
692 xFilePicker->setCurrentFilter(
DpResId(RID_STR_ALL_SUPPORTED) );
694 if ( xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK )
698 OSL_ASSERT( files.hasElements() );
709 m_xRemoveBtn->set_sensitive( bEnable && !officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionRemoval::get());
711 if (officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionRemoval::get())
742 if ( m_xAbortChannel.is() )
746 m_xAbortChannel->sendAbort();
748 catch (
const uno::RuntimeException & )
757 bool bCallClose =
true;
780 std::unique_lock aGuard(
m_aMutex );
781 bool bLockInterface =
static_cast<bool>(_bLockInterface);
783 if ( m_bStartProgress && !m_bHasProgress )
786 if ( m_bStopProgress )
788 if ( m_xProgressBar->get_visible() )
789 m_xProgressBar->set_percentage( 100 );
790 m_xAbortChannel.clear();
792 SAL_INFO(
"desktop.deployment",
" startProgress handler: stop" );
796 SAL_INFO(
"desktop.deployment",
" startProgress handler: start" );
799 m_xCancelBtn->set_sensitive( bLockInterface );
800 m_xAddBtn->set_sensitive( !bLockInterface && !officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionInstallation::get());
801 if (officecfg::Office::ExtensionManager::ExtensionSecurity::DisableExtensionInstallation::get())
803 m_xAddBtn->set_tooltip_text(
DpResId(RID_STR_WARNING_INSTALL_EXTENSION_DISABLED));
807 m_xAddBtn->set_tooltip_text(
"");
810 m_xUpdateBtn->set_sensitive( !bLockInterface && m_xExtensionBox->getItemCount() );
811 m_xExtensionBox->enableButtons( !bLockInterface );
819 std::unique_lock aGuard(
m_aMutex );
821 bool bStart = _bStart;
827 SAL_INFO(
"desktop.deployment",
"showProgress start" );
833 SAL_INFO(
"desktop.deployment",
"showProgress stop!" );
845 std::unique_lock aGuard(
m_aMutex );
855 std::unique_lock aGuard(
m_aMutex );
872 const sal_Int32 nActive = m_xExtensionBox->getSelIndex();
878 OUString sExtensionId = m_xExtensionBox->GetEntryData( nActive )->m_xPackage->getIdentifier().Value;
891 if ( aFileList.hasElements() )
901 const sal_Int32 nActive = m_xExtensionBox->getSelIndex();
905 TEntry_Impl pEntry = m_xExtensionBox->GetEntryData( nActive );
906 removePackage( pEntry->m_xPackage );
912 const sal_Int32 nActive = m_xExtensionBox->getSelIndex();
916 TEntry_Impl pEntry = m_xExtensionBox->GetEntryData( nActive );
918 if ( pEntry->m_bMissingLic )
919 acceptLicense( pEntry->m_xPackage );
922 const bool bEnable( pEntry->m_eState !=
REGISTERED );
923 enablePackage( pEntry->m_xPackage, bEnable );
940#if ENABLE_EXTENSION_UPDATE
949 if ( m_bStopProgress )
951 m_bHasProgress =
false;
952 m_bStopProgress =
false;
953 m_xProgressText->hide();
954 m_xProgressBar->hide();
955 m_xCancelBtn->hide();
959 if ( m_bProgressChanged )
961 m_bProgressChanged =
false;
962 m_xProgressText->set_label(m_sProgressText);
965 if ( m_bStartProgress )
967 m_bStartProgress =
false;
968 m_bHasProgress =
true;
969 m_xProgressBar->show();
970 m_xProgressText->show();
971 m_xCancelBtn->set_sensitive(
true);
972 m_xCancelBtn->show();
975 if ( m_xProgressBar->get_visible() )
976 m_xProgressBar->set_percentage(
static_cast<sal_uInt16
>(m_nProgress) );
988 : GenericDialogController(pParent,
"desktop/ui/updaterequireddialog.ui",
"UpdateRequiredDialog")
990 , m_sCloseText(
DpResId(RID_STR_CLOSE_BTN))
991 , m_bHasProgress(false)
992 , m_bProgressChanged(false)
993 , m_bStartProgress(false)
994 , m_bStopProgress(false)
995 , m_bHasLockedEntries(false)
997 , m_aIdle(
"UpdateRequiredDialog m_aIdle TimeOutHdl" )
999 , m_xExtensionBox(new
ExtensionBox_Impl(m_xBuilder->weld_scrolled_window(
"scroll", true)))
1000 , m_xExtensionBoxWnd(new
weld::CustomWeld(*m_xBuilder,
"extensions", *m_xExtensionBox))
1001 , m_xUpdateNeeded(m_xBuilder->weld_label(
"updatelabel"))
1002 , m_xUpdateBtn(m_xBuilder->weld_button(
"ok"))
1003 , m_xCloseBtn(m_xBuilder->weld_button(
"disable"))
1004 , m_xCancelBtn(m_xBuilder->weld_button(
"cancel"))
1005 , m_xProgressText(m_xBuilder->weld_label(
"progresslabel"))
1006 , m_xProgressBar(m_xBuilder->weld_progress_bar(
"progress"))
1015 aText = aText.replaceAll(
1033 bool bLicenseMissing )
1067 if ( m_xAbortChannel.is() )
1071 m_xAbortChannel->sendAbort();
1073 catch (
const uno::RuntimeException & )
1083 std::unique_lock aGuard(
m_aMutex );
1084 bool bLockInterface =
static_cast<bool>(_bLockInterface);
1086 if ( m_bStartProgress && !m_bHasProgress )
1089 if ( m_bStopProgress )
1091 if ( m_xProgressBar->get_visible() )
1092 m_xProgressBar->set_percentage( 100 );
1093 m_xAbortChannel.clear();
1094 SAL_INFO(
"desktop.deployment",
" startProgress handler: stop" );
1098 SAL_INFO(
"desktop.deployment",
" startProgress handler: start" );
1101 m_xCancelBtn->set_sensitive( bLockInterface );
1102 m_xUpdateBtn->set_sensitive(
false );
1109 std::unique_lock aGuard(
m_aMutex );
1111 bool bStart = _bStart;
1117 SAL_INFO(
"desktop.deployment",
"showProgress start" );
1123 SAL_INFO(
"desktop.deployment",
"showProgress stop!" );
1135 std::unique_lock aGuard(
m_aMutex );
1145 std::unique_lock aGuard(
m_aMutex );
1175 std::unique_lock aGuard(
m_aMutex );
1177 std::vector< uno::Reference< deployment::XPackage > > vUpdateEntries;
1178 sal_Int32
nCount = m_xExtensionBox->GetEntryCount();
1180 for ( sal_Int32
i = 0;
i <
nCount; ++
i )
1182 TEntry_Impl pEntry = m_xExtensionBox->GetEntryData(
i );
1183 vUpdateEntries.push_back( pEntry->m_xPackage );
1188 m_pManager->getCmdQueue()->checkForUpdates( std::move(vUpdateEntries) );
1194 std::unique_lock aGuard(
m_aMutex );
1198 if ( m_bHasLockedEntries )
1200 else if ( hasActiveEntries() )
1201 disableAllEntries();
1210 if ( m_bStopProgress )
1212 m_bHasProgress =
false;
1213 m_bStopProgress =
false;
1214 m_xProgressText->hide();
1215 m_xProgressBar->hide();
1216 m_xCancelBtn->hide();
1220 if ( m_bProgressChanged )
1222 m_bProgressChanged =
false;
1223 m_xProgressText->set_label( m_sProgressText );
1226 if ( m_bStartProgress )
1228 m_bStartProgress =
false;
1229 m_bHasProgress =
true;
1230 m_xProgressBar->show();
1231 m_xProgressText->show();
1232 m_xCancelBtn->set_sensitive(
true);
1233 m_xCancelBtn->show();
1236 if (m_xProgressBar->get_visible())
1237 m_xProgressBar->set_percentage(m_nProgress);
1260 return GenericDialogController::run();
1267 bool bRegistered =
false;
1273 ::beans::Ambiguous< sal_Bool >
const & reg =
option.Value;
1274 if ( reg.IsAmbiguous )
1275 bRegistered =
false;
1277 bRegistered = reg.Value;
1280 bRegistered =
false;
1282 catch (
const uno::RuntimeException & ) {
throw; }
1283 catch (
const uno::Exception & ) {
1285 bRegistered =
false;
1294 bool bDependenciesValid =
false;
1298 catch (
const deployment::DeploymentException & ) {}
1299 return bDependenciesValid;
1305 std::unique_lock aGuard(
m_aMutex );
1326 std::unique_lock aGuard(
m_aMutex );
1346 : GenericDialogController(pParent,
"desktop/ui/showlicensedialog.ui",
"ShowLicenseDialog")
1347 , m_xLicenseText(m_xBuilder->weld_text_view(
"textview"))
1369 return "com.sun.star.comp.deployment.ui.UpdateRequiredDialog";
1379 return {
"com.sun.star.deployment.ui.UpdateRequiredDialog" };
1394 xManager->createDialog(
true );
1395 sal_Int16 nRet = xManager->execute();
Reference< XExecutableDialog > m_xDialog
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static std::unique_ptr< weld::Builder > CreateBuilder(weld::Widget *pParent, const OUString &rUIFile, bool bMobile=false, sal_uInt64 nLOKWindowId=0)
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
virtual void Start(bool bStartTimer=true) override
static SfxAbstractDialogFactory * Create()
virtual VclPtr< VclAbstractDialog > CreateOptionsDialog(weld::Window *pParent, const OUString &rExtensionId)=0
void SetPriority(TaskPriority ePriority)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
bool installForAllUsers(bool &bInstallForAll)
void openWebBrowser(const OUString &rURL, const OUString &rTitle)
bool continueOnSharedExtension(const css::uno::Reference< css::deployment::XPackage > &, weld::Widget *pParent, TranslateId pResID, bool &bHadWarning)
css::uno::Reference< css::uno::XComponentContext > m_xContext
weld::Window * getFrameWeld() const
bool installExtensionWarn(std::u16string_view rExtensionURL)
DialogHelper(const css::uno::Reference< css::uno::XComponentContext > &, weld::Window *pWindow)
void PostUserEvent(const Link< void *, void > &rLink, void *pCaller)
static bool IsSharedPkgMgr(const css::uno::Reference< css::deployment::XPackage > &)
void enableButtons(bool bEnable)
void InitFromDialog(ExtMgrDialog *pParentDialog)
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
virtual void RecalcAll() override
ExtBoxWithBtns_Impl(std::unique_ptr< weld::ScrolledWindow > xScroll)
virtual bool Command(const CommandEvent &rCEvt) override
void SetButtonStatus(const TEntry_Impl &rEntry)
virtual void selectEntry(const tools::Long nPos) override
OUString ShowPopupMenu(const Point &rPos, const tools::Long nPos)
void enableButtontoEnable(bool bEnable)
css::uno::Reference< css::task::XAbortChannel > m_xAbortChannel
std::unique_ptr< weld::Button > m_xRemoveBtn
virtual void showProgress(bool bStart) override
TheExtensionManager * m_pManager
std::unique_ptr< weld::LinkButton > m_xGetExtensions
std::unique_ptr< weld::Button > m_xCancelBtn
bool acceptLicense(const css::uno::Reference< css::deployment::XPackage > &xPackage)
virtual ~ExtMgrDialog() override
void removePackage(const css::uno::Reference< css::deployment::XPackage > &xPackage)
bool removeExtensionWarn(std::u16string_view rExtensionTitle)
const OUString m_sAddPackages
std::unique_ptr< weld::Button > m_xCloseBtn
void updatePackage(const css::uno::Reference< css::deployment::XPackage > &xPackage)
std::unique_ptr< weld::Button > m_xUpdateBtn
virtual void prepareChecking() override
void enableEnableButton(bool bEnable)
std::unique_ptr< weld::CheckButton > m_xBundledCbx
void enableRemoveButton(bool bEnable)
std::unique_ptr< weld::Button > m_xAddBtn
ExtMgrDialog(weld::Window *pParent, TheExtensionManager *pManager)
virtual void updatePackageInfo(const css::uno::Reference< css::deployment::XPackage > &xPackage) override
void enablePackage(const css::uno::Reference< css::deployment::XPackage > &xPackage, bool bEnable)
std::unique_ptr< weld::CheckButton > m_xSharedCbx
virtual void updateProgress(const OUString &rText, const css::uno::Reference< css::task::XAbortChannel > &xAbortChannel) override
std::unique_ptr< weld::CheckButton > m_xUserCbx
css::uno::Sequence< OUString > raiseAddPicker()
std::unique_ptr< weld::Button > m_xEnableBtn
TheExtensionManager * getExtensionManager() const
void enableOptionsButton(bool bEnable)
std::unique_ptr< weld::Entry > m_xSearchEntry
virtual void addPackageToList(const css::uno::Reference< css::deployment::XPackage > &, bool bLicenseMissing=false) override
void setGetExtensionsURL(const OUString &rURL)
std::unique_ptr< ExtBoxWithBtns_Impl > m_xExtensionBox
std::unique_ptr< weld::ProgressBar > m_xProgressBar
std::unique_ptr< weld::Button > m_xOptionsBtn
virtual void checkEntries() override
virtual void selectEntry(const tools::Long nPos)
tools::Long PointToPos(const Point &rPos)
void setExtensionManager(TheExtensionManager *pManager)
sal_Int32 getSelIndex() const
virtual bool MouseButtonDown(const MouseEvent &rMEvt) override
sal_Int32 getItemCount() const
TEntry_Impl const & GetEntryData(tools::Long nPos)
void enableExtension(const css::uno::Reference< css::deployment::XPackage > &rPackage, const bool bEnable)
void acceptLicense(const css::uno::Reference< css::deployment::XPackage > &rPackage)
void checkForUpdates(std::vector< css::uno::Reference< css::deployment::XPackage > > &&vList)
void removeExtension(const css::uno::Reference< css::deployment::XPackage > &rPackage)
virtual ~ShowLicenseDialog() override
ShowLicenseDialog(weld::Window *pParent, const css::uno::Reference< css::deployment::XPackage > &xPackage)
std::unique_ptr< weld::TextView > m_xLicenseText
static ::rtl::Reference< TheExtensionManager > get(css::uno::Reference< css::uno::XComponentContext > const &xContext, css::uno::Reference< css::awt::XWindow > const &xParent=nullptr, OUString const &view=OUString())
ExtensionCmdQueue * getCmdQueue() const
const css::uno::Reference< css::deployment::XExtensionManager > & getExtensionManager() const
bool isReadOnly(const css::uno::Reference< css::deployment::XPackage > &xPackage) const
virtual void SAL_CALL setTitle(OUString const &title) override
css::uno::Reference< css::uno::XComponentContext > const m_xComponentContext
UpdateRequiredDialogService(css::uno::Sequence< css::uno::Any > const &args, css::uno::Reference< css::uno::XComponentContext > xComponentContext)
virtual sal_Int16 SAL_CALL execute() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
static bool isEnabled(const css::uno::Reference< css::deployment::XPackage > &xPackage)
std::unique_ptr< ExtensionBox_Impl > m_xExtensionBox
virtual void checkEntries() override
std::unique_ptr< weld::Button > m_xUpdateBtn
std::unique_ptr< weld::ProgressBar > m_xProgressBar
virtual void updatePackageInfo(const css::uno::Reference< css::deployment::XPackage > &xPackage) override
static bool checkDependencies(const css::uno::Reference< css::deployment::XPackage > &xPackage)
virtual void showProgress(bool bStart) override
virtual ~UpdateRequiredDialog() override
TheExtensionManager * m_pManager
std::unique_ptr< weld::Label > m_xUpdateNeeded
virtual void updateProgress(const OUString &rText, const css::uno::Reference< css::task::XAbortChannel > &xAbortChannel) override
std::unique_ptr< weld::Button > m_xCloseBtn
std::unique_ptr< weld::Button > m_xCancelBtn
css::uno::Reference< css::task::XAbortChannel > m_xAbortChannel
const OUString m_sCloseText
virtual void prepareChecking() override
UpdateRequiredDialog(weld::Window *pParent, TheExtensionManager *pManager)
virtual short run() override
virtual void addPackageToList(const css::uno::Reference< css::deployment::XPackage > &, bool bLicenseMissing=false) override
const css::uno::Reference< css::ui::dialogs::XFilePicker3 > & GetFilePicker() const
void SetContext(Context _eNewContext)
static OUString getProductName()
virtual Dialog * getDialog() override
std::shared_ptr< weld::Dialog > m_xDialog
#define TOOLS_WARN_EXCEPTION(area, stream)
uno::Reference< deployment::XPackage > m_xPackage
Reference< XComponentContext > const m_xComponentContext
OUString DpResId(TranslateId aId)
constexpr OUStringLiteral HID_EXTENSION_MANAGER_LISTBOX_DISABLE
constexpr OUStringLiteral HID_EXTENSION_MANAGER_LISTBOX_ENABLE
static uno::Reference< css::uno::XComponentContext > xContext
#define LINK(Instance, Class, Member)
#define SAL_INFO(area, stream)
std::locale Create(std::string_view aPrefixName, const LanguageTag &rLocale)
OUString get(TranslateId sContextAndId, const std::locale &loc)
Reference< XComponentContext > getProcessComponentContext()
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
constexpr OUStringLiteral SHARED_PACKAGE_MANAGER
IMPL_LINK(ExtMgrDialog, startProgress, void *, _bLockInterface, void)
IMPL_LINK_NOARG(ExtMgrDialog, HandleCancelBtn, weld::Button &, void)
constexpr OUStringLiteral USER_PACKAGE_MANAGER
std::shared_ptr< Entry_Impl > TEntry_Impl
constexpr OUStringLiteral BUNDLED_PACKAGE_MANAGER
DESKTOP_DEPLOYMENTMISC_DLLPUBLIC css::uno::Reference< css::deployment::XPackage > getExtensionWithHighestVersion(css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > const &seqExtensionsWithSameId)
DESKTOP_DEPLOYMENTMISC_DLLPUBLIC OUString getIdentifier(css::uno::Reference< css::deployment::XPackage > const &package)
Gets the identifier of a package.
css::uno::Reference< css::deployment::XPackageRegistry > create(css::uno::Reference< css::deployment::XPackageRegistry > const &xRootRegistry, OUString const &context, OUString const &cachePath, css::uno::Reference< css::uno::XComponentContext > const &xComponentContext)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)