21 #include <string_view>
28 #include <strings.hrc>
29 #include <bitmaps.hlst>
31 #include <dialmgr.hxx>
33 #include <com/sun/star/uno/XComponentContext.hpp>
34 #include <com/sun/star/script/provider/ScriptFrameworkErrorException.hpp>
35 #include <com/sun/star/script/provider/XScriptProviderSupplier.hpp>
36 #include <com/sun/star/script/provider/XScriptProvider.hpp>
37 #include <com/sun/star/script/browse/BrowseNodeTypes.hpp>
38 #include <com/sun/star/script/browse/XBrowseNodeFactory.hpp>
39 #include <com/sun/star/script/browse/BrowseNodeFactoryViewTypes.hpp>
40 #include <com/sun/star/script/browse/theBrowseNodeFactory.hpp>
41 #include <com/sun/star/script/provider/ScriptErrorRaisedException.hpp>
42 #include <com/sun/star/script/provider/ScriptExceptionRaisedException.hpp>
43 #include <com/sun/star/script/provider/ScriptFrameworkErrorType.hpp>
44 #include <com/sun/star/frame/Desktop.hpp>
45 #include <com/sun/star/frame/ModuleManager.hpp>
46 #include <com/sun/star/script/XInvocation.hpp>
47 #include <com/sun/star/document/XEmbeddedScripts.hpp>
67 SFEntry* pUserData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rIter));
75 m_xScriptsBox->set_id(rIter, OUString());
82 std::unique_ptr<weld::TreeIter> xIter = m_xScriptsBox->make_iterator(&rIter);
83 if (!m_xScriptsBox->iter_children(*xIter))
86 std::unique_ptr<weld::TreeIter> xAltIter = m_xScriptsBox->make_iterator();
90 m_xScriptsBox->copy_iterator(*xIter, *xAltIter);
91 bNextEntry = m_xScriptsBox->iter_next_sibling(*xAltIter);
93 m_xScriptsBox->remove(*xIter);
94 m_xScriptsBox->copy_iterator(*xAltIter, *xIter);
101 std::unique_ptr<weld::TreeIter> xIter = m_xScriptsBox->make_iterator();
102 if (!m_xScriptsBox->get_iter_first(*xIter))
105 std::unique_ptr<weld::TreeIter> xAltIter = m_xScriptsBox->make_iterator();
110 m_xScriptsBox->copy_iterator(*xIter, *xAltIter);
111 bNextEntry = m_xScriptsBox->iter_next_sibling(*xAltIter);
113 m_xScriptsBox->remove(*xIter);
114 m_xScriptsBox->copy_iterator(*xAltIter, *xIter);
121 m_xScriptsBox->freeze();
125 Reference< browse::XBrowseNode > rootNode;
129 Sequence< Reference< browse::XBrowseNode > > children;
131 OUString userStr(
"user");
132 OUString
const shareStr(
"share");
136 Reference< browse::XBrowseNodeFactory > xFac = browse::theBrowseNodeFactory::get(xCtx);
138 rootNode.set( xFac->createView(
139 browse::BrowseNodeFactoryViewTypes::MACROORGANIZER ) );
141 if ( rootNode.is() && rootNode->hasChildNodes() )
143 children = rootNode->getChildNodes();
152 Reference<XModel> xDocumentModel;
153 for (
const Reference< browse::XBrowseNode >& childNode : std::as_const(children) )
156 OUString uiName = childNode->getName();
158 if ( uiName == userStr || uiName == shareStr )
161 if ( uiName == userStr )
163 uiName = m_sMyMacros;
167 uiName = m_sProdMacros;
174 if ( xDocumentModel.is() )
176 Reference< frame::XModuleManager2 > xModuleManager( frame::ModuleManager::create(xCtx) );
181 OUString appModule = xModuleManager->identify( xDocumentModel );
182 xModuleManager->getByName(appModule) >>= moduleDescr;
183 }
catch(
const uno::Exception&)
186 for (
const beans::PropertyValue& prop : std::as_const(moduleDescr))
188 if ( prop.Name ==
"ooSetupFactoryEmptyDocumentURL" )
190 prop.Value >>= factoryURL;
197 Reference< browse::XBrowseNode > langEntries =
198 getLangNodeFromRootNode( childNode, language );
200 insertEntry( uiName, app ? OUString(RID_CUIBMP_HARDDISK) : OUString(RID_CUIBMP_DOC),
201 nullptr,
true, std::make_unique< SFEntry >( langEntries, xDocumentModel ), factoryURL,
false );
204 m_xScriptsBox->thaw();
207 Reference< XInterface >
210 Reference< XInterface >
xModel;
211 Reference< frame::XDesktop2 >
desktop = frame::Desktop::create(xCtx);
213 Reference< container::XEnumerationAccess > componentsAccess =
214 desktop->getComponents();
215 Reference< container::XEnumeration > components =
216 componentsAccess->createEnumeration();
217 while (components->hasMoreElements())
220 components->nextElement(), UNO_QUERY );
223 OUString sTdocUrl = ::comphelper::DocumentInfo::getDocumentTitle(
model );
224 if( sTdocUrl == docName )
234 Reference< browse::XBrowseNode >
237 Reference< browse::XBrowseNode > langNode;
242 const Sequence<Reference<browse::XBrowseNode>> children = rootNode->getChildNodes();
243 const auto it = std::find_if(children.begin(), children.end(),
244 [&](
const Reference<browse::XBrowseNode>& child) {
245 return child->getName() == language;
247 return (it != children.end()) ? *it :
nullptr;
252 langNode = tryFind();
257 langNode = tryFind();
269 Reference< XModel >& model)
276 Sequence< Reference< browse::XBrowseNode > > children;
279 children = node->getChildNodes();
286 for (
const Reference< browse::XBrowseNode >& childNode : std::as_const(children) )
288 OUString
name( childNode->getName() );
289 if ( childNode->getType() != browse::BrowseNodeTypes::SCRIPT)
291 insertEntry(
name, RID_CUIBMP_LIB, &rRootEntry,
true, std::make_unique<SFEntry>(childNode, model),
false);
295 insertEntry(
name, RID_CUIBMP_MACRO, &rRootEntry,
false, std::make_unique<SFEntry>(childNode, model),
false);
301 const weld::TreeIter* pParent,
bool bChildrenOnDemand, std::unique_ptr<SFEntry> && aUserData,
302 std::u16string_view factoryURL,
bool bSelect)
304 if (rBitmap == RID_CUIBMP_DOC && !factoryURL.empty())
307 insertEntry(rText, aImage, pParent, bChildrenOnDemand, std::move(aUserData), bSelect);
310 insertEntry(rText, rBitmap, pParent, bChildrenOnDemand, std::move(aUserData), bSelect);
314 const OUString& rText,
const OUString& rBitmap,
const weld::TreeIter* pParent,
315 bool bChildrenOnDemand, std::unique_ptr<SFEntry> && aUserData,
bool bSelect)
318 m_xScriptsBox->insert(pParent, -1, &rText, &sId,
nullptr,
nullptr,
319 bChildrenOnDemand, m_xScratchIter.get());
320 m_xScriptsBox->set_image(*m_xScratchIter, rBitmap);
323 m_xScriptsBox->set_cursor(*m_xScratchIter);
324 m_xScriptsBox->select(*m_xScratchIter);
330 SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rIter));
332 Reference< browse::XBrowseNode > node;
333 Reference< XModel >
model;
334 if ( userData && !userData->
isLoaded() )
338 RequestSubEntries(rIter, node, model);
347 : GenericDialogController(pParent,
"cui/ui/newlibdialog.ui",
"NewLibDialog")
348 , m_xEdit(m_xBuilder->weld_entry(
"entry"))
352 std::unique_ptr<weld::Label> xNewLibFT(
m_xBuilder->weld_label(
"newlibft"));
357 std::unique_ptr<weld::Label> xNewMacroFT(
m_xBuilder->weld_label(
"newmacroft"));
359 std::unique_ptr<weld::Label> xAltTitle(
m_xBuilder->weld_label(
"altmacrotitle"));
360 m_xDialog->set_title(xAltTitle->get_label());
365 std::unique_ptr<weld::Label> xRenameFT(
m_xBuilder->weld_label(
"renameft"));
367 std::unique_ptr<weld::Label> xAltTitle(
m_xBuilder->weld_label(
"altrenametitle"));
368 m_xDialog->set_title(xAltTitle->get_label());
377 , m_sLanguage(language)
378 , m_delErrStr(
CuiResId(RID_CUISTR_DELFAILED))
379 , m_delErrTitleStr(
CuiResId(RID_CUISTR_DELFAILED_TITLE))
380 , m_delQueryStr(
CuiResId(RID_CUISTR_DELQUERY))
381 , m_delQueryTitleStr(
CuiResId(RID_CUISTR_DELQUERY_TITLE))
382 , m_createErrStr(
CuiResId(RID_CUISTR_CREATEFAILED))
383 , m_createDupStr(
CuiResId(RID_CUISTR_CREATEFAILEDDUP))
384 , m_createErrTitleStr(
CuiResId(RID_CUISTR_CREATEFAILED_TITLE))
385 , m_renameErrStr(
CuiResId(RID_CUISTR_RENAMEFAILED))
386 , m_renameErrTitleStr(
CuiResId(RID_CUISTR_RENAMEFAILED_TITLE))
387 , m_sMyMacros(
CuiResId(RID_CUISTR_MYMACROS))
388 , m_sProdMacros(
CuiResId(RID_CUISTR_PRODMACROS))
389 , m_xScriptsBox(m_xBuilder->weld_tree_view(
"scripts"))
390 , m_xScratchIter(m_xScriptsBox->make_iterator())
391 , m_xRunButton(m_xBuilder->weld_button(
"ok"))
392 , m_xCloseButton(m_xBuilder->weld_button(
"close"))
393 , m_xCreateButton(m_xBuilder->weld_button(
"create"))
394 , m_xEditButton(m_xBuilder->weld_button(
"edit"))
395 , m_xRenameButton(m_xBuilder->weld_button(
"rename"))
396 , m_xDelButton(m_xBuilder->weld_button(
"delete"))
400 OUString winTitle(
m_xDialog->get_title());
401 winTitle = winTitle.replaceFirst(
"%MACROLANG",
m_sLanguage );
438 Reference< provider::XScriptProviderSupplier > xSPS( pDoc->
GetModel(), UNO_QUERY );
441 xSPS->getScriptProvider();
447 return SfxDialogController::run();
454 if ( node->getType() == browse::BrowseNodeTypes::SCRIPT)
473 OUString
sName(
"Editable");
530 std::unique_ptr<weld::TreeIter> xIter = m_xScriptsBox->make_iterator();
531 if (!m_xScriptsBox->get_selected(xIter.get()))
534 SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(*xIter));
536 Reference< browse::XBrowseNode > node;
546 if ( &rButton == m_xCloseButton.get() )
548 StoreCurrentSelection();
551 if (!(&rButton == m_xEditButton.get() ||
552 &rButton == m_xCreateButton.get() ||
553 &rButton == m_xDelButton.get() ||
554 &rButton == m_xRunButton.get() ||
555 &rButton == m_xRenameButton.get()))
559 std::unique_ptr<weld::TreeIter> xIter = m_xScriptsBox->make_iterator();
560 if (!m_xScriptsBox->get_selected(xIter.get()))
562 SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(*xIter));
566 Reference< browse::XBrowseNode > node;
567 Reference< XModel >
xModel;
577 if (&rButton == m_xRunButton.get())
581 Reference< provider::XScriptProvider > mspNode;
589 Reference< XEmbeddedScripts > xEmbeddedScripts( xModel, UNO_QUERY);
590 if( !xEmbeddedScripts.is() )
595 if (!xEmbeddedScripts->getAllowMacroExecution())
602 std::unique_ptr<weld::TreeIter> xParentIter = m_xScriptsBox->make_iterator(xIter.get());
603 bool bParent = m_xScriptsBox->iter_parent(*xParentIter);
604 while (bParent && !mspNode.is() )
606 SFEntry* mspUserData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(*xParentIter));
607 mspNode.set( mspUserData->
GetNode() , UNO_QUERY );
608 bParent = m_xScriptsBox->iter_parent(*xParentIter);
610 xProp->getPropertyValue(
"URI") >>= tmpString;
611 const OUString scriptURL( tmpString );
617 Reference< provider::XScript > xScript(
618 mspNode->getScript( scriptURL ), UNO_SET_THROW );
620 const Sequence< Any >
args(0);
621 Sequence< sal_Int16 > outIndex;
622 Sequence< Any > outArgs( 0 );
623 xScript->invoke( args, outIndex, outArgs );
625 catch ( reflection::InvocationTargetException& ite )
629 catch ( provider::ScriptFrameworkErrorException& ite )
642 StoreCurrentSelection();
645 else if ( &rButton == m_xEditButton.get() )
647 Reference< script::XInvocation > xInv( node, UNO_QUERY );
650 StoreCurrentSelection();
652 Sequence< Any >
args(0);
653 Sequence< Any > outArgs( 0 );
654 Sequence< sal_Int16 > outIndex;
658 xInv->invoke(
"Editable", args, outIndex, outArgs );
666 else if ( &rButton == m_xCreateButton.get() )
670 else if ( &rButton == m_xDelButton.get() )
674 else if ( &rButton == m_xRenameButton.get() )
682 Reference< browse::XBrowseNode > node;
693 Reference< XModel >
model;
705 Reference< browse::XBrowseNode > aChildNode;
706 Reference< browse::XBrowseNode > node =
getBrowseNode( rEntry );
707 Reference< script::XInvocation > xInv( node, UNO_QUERY );
712 OUString aNewStdName;
716 aNewStdName =
"Library" ;
720 aNewStdName =
"Macro" ;
728 Sequence< Reference< browse::XBrowseNode > > childNodes;
732 if( !node->hasChildNodes() )
734 aNewName = aNewStdName + OUString::number(i);
739 childNodes = node->getChildNodes();
750 aNewName = aNewStdName + OUString::number(i);
752 if(childNodes.hasElements() )
754 OUString nodeName = childNodes[0]->getName();
755 sal_Int32 extnPos = nodeName.lastIndexOf(
'.' );
757 extn = nodeName.copy(extnPos);
759 for(
const Reference< browse::XBrowseNode >&
n : std::as_const(childNodes) )
761 if (OUStringConcatenation(aNewName+extn) ==
n->getName())
782 if (aNewDlg.run() && !aNewDlg.GetObjectName().isEmpty())
784 OUString aUserSuppliedName = aNewDlg.GetObjectName();
786 for(
const Reference< browse::XBrowseNode >&
n : std::as_const(childNodes) )
788 if (OUStringConcatenation(aUserSuppliedName+extn) ==
n->getName())
794 VclMessageType::Warning, VclButtonsType::Ok, aError));
797 aNewDlg.SetObjectName(aNewName);
802 aNewName = aUserSuppliedName;
816 Sequence< Any >
args{
Any(aNewName) };
817 Sequence< Any > outArgs;
818 Sequence< sal_Int16 > outIndex;
821 Any aResult = xInv->invoke(
"Creatable",
args, outIndex, outArgs );
822 Reference< browse::XBrowseNode > newNode( aResult, UNO_QUERY );
823 aChildNode = newNode;
831 if ( aChildNode.is() )
833 OUString aChildName = aChildNode->getName();
835 Reference<XModel> xDocumentModel =
getModel( rEntry );
842 if ( aChildNode->getType() == browse::BrowseNodeTypes::SCRIPT )
844 insertEntry(aChildName, RID_CUIBMP_MACRO, &rEntry,
false,
845 std::make_unique<SFEntry>(aChildNode,xDocumentModel),
true);
849 insertEntry(aChildName, RID_CUIBMP_LIB, &rEntry,
false,
850 std::make_unique<SFEntry>(aChildNode,xDocumentModel),
true);
857 if ( userData && !userData->
isLoaded() )
868 VclMessageType::Warning, VclButtonsType::Ok, aError));
877 Reference< browse::XBrowseNode > aChildNode;
878 Reference< browse::XBrowseNode > node =
getBrowseNode(rEntry);
879 Reference< script::XInvocation > xInv( node, UNO_QUERY );
883 OUString aNewName = node->getName();
884 sal_Int32 extnPos = aNewName.lastIndexOf(
'.' );
887 aNewName = aNewName.copy(0,extnPos);
892 if (!aNewDlg.run() || aNewDlg.GetObjectName().isEmpty())
895 aNewName = aNewDlg.GetObjectName();
897 Sequence< Any >
args{
Any(aNewName) };
898 Sequence< Any > outArgs;
899 Sequence< sal_Int16 > outIndex;
902 Any aResult = xInv->invoke(
"Renamable",
args, outIndex, outArgs );
903 Reference< browse::XBrowseNode > newNode( aResult, UNO_QUERY );
904 aChildNode = newNode;
912 if ( aChildNode.is() )
924 VclMessageType::Warning, VclButtonsType::Ok, aError));
933 Reference< browse::XBrowseNode > node =
getBrowseNode(rEntry);
937 VclMessageType::Question, VclButtonsType::YesNo, aQuery));
939 if (xQueryBox->run() ==
RET_NO)
944 Reference< script::XInvocation > xInv( node, UNO_QUERY );
947 Sequence< Any >
args( 0 );
948 Sequence< Any > outArgs( 0 );
949 Sequence< sal_Int16 > outIndex;
952 Any aResult = xInv->invoke(
"Deletable", args, outIndex, outArgs );
970 VclMessageType::Warning, VclButtonsType::Ok,
m_delErrStr));
978 OUString
const & propName )
983 xProps->getPropertyValue( propName ) >>= result;
994 OUStringBuffer
result =
"\n";
995 for(
int i=0;
i<=depth;
i++ )
999 result.append(node->getName());
1003 if ( node->hasChildNodes() )
1005 const Sequence< Reference< browse::XBrowseNode > > children
1006 = node->getChildNodes();
1007 for(
const Reference< browse::XBrowseNode >&
n : children )
1018 return result.makeStringAndClear();
1025 std::unique_ptr<weld::TreeIter> xIter =
m_xScriptsBox->make_iterator();
1028 OUString aDescription;
1032 aDescription =
m_xScriptsBox->get_text(*xIter) + aDescription;
1035 aDescription =
";" + aDescription;
1038 OUString sDesc( aDescription );
1045 if( aStoredEntry.isEmpty() )
1047 std::unique_ptr<weld::TreeIter> xEntry;
1048 std::unique_ptr<weld::TreeIter> xTmpEntry(
m_xScriptsBox->make_iterator());
1050 while (nIndex != -1)
1052 std::u16string_view aTmp(
o3tl::getToken(aStoredEntry, 0,
';', nIndex ) );
1092 OUString ReplaceString(
1093 const OUString& source,
1094 const OUString& token,
1095 std::u16string_view value )
1097 sal_Int32
pos = source.indexOf( token );
1099 if ( pos != -1 && !value.empty() )
1101 return source.replaceAt( pos, token.getLength(), value );
1109 OUString FormatErrorString(
1110 const OUString& unformatted,
1111 std::u16string_view language,
1112 std::u16string_view script,
1113 std::u16string_view line,
1114 std::u16string_view type,
1115 std::u16string_view message )
1117 OUString
result = unformatted;
1119 result = ReplaceString(result,
"%LANGUAGENAME", language );
1120 result = ReplaceString(result,
"%SCRIPTNAME", script );
1121 result = ReplaceString(result,
"%LINENUMBER", line );
1123 if ( !type.empty() )
1125 result +=
"\n\n" +
CuiResId(RID_CUISTR_ERROR_TYPE_LABEL) +
" " + type;
1128 if ( !message.empty() )
1130 result +=
"\n\n" +
CuiResId(RID_CUISTR_ERROR_MESSAGE_LABEL) +
" " + message;
1136 OUString GetErrorMessage(
1137 const provider::ScriptErrorRaisedException& eScriptError )
1139 OUString unformatted =
CuiResId( RID_CUISTR_ERROR_AT_LINE );
1145 OUString message = eScriptError.Message;
1147 if ( !eScriptError.language.isEmpty() )
1149 language = eScriptError.language;
1152 if ( !eScriptError.scriptName.isEmpty() )
1154 script = eScriptError.scriptName;
1157 if ( !eScriptError.Message.isEmpty() )
1159 message = eScriptError.Message;
1161 if ( eScriptError.lineNum != -1 )
1163 line = OUString::number( eScriptError.lineNum );
1164 unformatted =
CuiResId( RID_CUISTR_ERROR_AT_LINE );
1168 unformatted =
CuiResId( RID_CUISTR_ERROR_RUNNING );
1171 return FormatErrorString(
1172 unformatted, language, script, line, u
"", message );
1175 OUString GetErrorMessage(
1176 const provider::ScriptExceptionRaisedException& eScriptException )
1178 OUString unformatted =
CuiResId( RID_CUISTR_EXCEPTION_AT_LINE );
1185 OUString message = eScriptException.Message;
1187 if ( !eScriptException.language.isEmpty() )
1189 language = eScriptException.language;
1191 if ( !eScriptException.scriptName.isEmpty() )
1193 script = eScriptException.scriptName;
1196 if ( !eScriptException.Message.isEmpty() )
1198 message = eScriptException.Message;
1201 if ( eScriptException.lineNum != -1 )
1203 line = OUString::number( eScriptException.lineNum );
1204 unformatted =
CuiResId( RID_CUISTR_EXCEPTION_AT_LINE );
1208 unformatted =
CuiResId( RID_CUISTR_EXCEPTION_RUNNING );
1211 if ( !eScriptException.exceptionType.isEmpty() )
1213 type = eScriptException.exceptionType;
1216 return FormatErrorString(
1217 unformatted, language, script, line, type, message );
1220 OUString GetErrorMessage(
1221 const provider::ScriptFrameworkErrorException& sError )
1223 OUString unformatted =
CuiResId( RID_CUISTR_FRAMEWORK_ERROR_RUNNING );
1225 OUString language(
"UNKNOWN");
1227 OUString script(
"UNKNOWN");
1231 if ( !sError.scriptName.isEmpty() )
1233 script = sError.scriptName;
1235 if ( !sError.language.isEmpty() )
1237 language = sError.language;
1239 if ( sError.errorType == provider::ScriptFrameworkErrorType::NOTSUPPORTED )
1241 message =
CuiResId(RID_CUISTR_ERROR_LANG_NOT_SUPPORTED);
1242 message = ReplaceString(message,
"%LANGUAGENAME", language );
1247 message = sError.Message;
1249 return FormatErrorString(
1250 unformatted, language, script, u
"", std::u16string_view(), message );
1253 OUString GetErrorMessage(
const css::uno::Any& aException )
1255 if ( aException.getValueType() ==
1258 reflection::InvocationTargetException ite;
1263 provider::ScriptErrorRaisedException scriptError;
1264 ite.TargetException >>= scriptError;
1265 return GetErrorMessage( scriptError );
1270 provider::ScriptExceptionRaisedException scriptException;
1271 ite.TargetException >>= scriptException;
1272 return GetErrorMessage( scriptException );
1284 provider::ScriptFrameworkErrorException sfe;
1286 return GetErrorMessage( sfe );
1290 auto msg = aException.getValueTypeName();
1292 if ( (aException >>= e) && !e.Message.isEmpty() )
1294 msg +=
": " + e.Message;
1305 OUString
sMessage = GetErrorMessage( aException );
1319 std::unique_ptr<DialogData> xData(static_cast<DialogData*>(
p));
1320 OUString message = xData->sMessage;
1322 if ( message.isEmpty() )
1323 message =
CuiResId( RID_CUISTR_ERROR_TITLE );
1325 std::shared_ptr<weld::MessageDialog> xBox;
1328 VclMessageType::Warning,
1333 xBox->set_title(
CuiResId(RID_CUISTR_ERROR_TITLE));
1335 xBox->runAsync(xBox, [](sal_Int32 ) {});
std::unique_ptr< weld::Button > m_xDelButton
#define LINK(Instance, Class, Member)
std::shared_ptr< weld::Dialog > m_xDialog
const OUString m_renameErrTitleStr
OUString getListOfChildren(const css::uno::Reference< css::script::browse::XBrowseNode > &node, int depth)
const OUString m_renameErrStr
static bool getBoolProperty(css::uno::Reference< css::beans::XPropertySet > const &xProps, OUString const &propName)
void delUserData(const weld::TreeIter &rIter)
static Selection_hash m_lastSelection
std::unique_ptr< weld::Builder > m_xBuilder
IMPL_LINK_NOARG(SvxScriptOrgDialog, ScriptSelectHdl, weld::TreeView &, void)
const OUString m_delQueryStr
std::unique_ptr< sal_Int32[]> pData
uno::Reference< frame::XModel > getDocumentModel(StarBASIC *pb)
css::uno::Reference< css::frame::XModel3 > GetModel() const
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
std::unique_ptr< weld::TreeView > m_xScriptsBox
std::unique_ptr< weld::Button > m_xCreateButton
void createEntry(const weld::TreeIter &rEntry)
css::uno::Reference< css::script::browse::XBrowseNode > getBrowseNode(const weld::TreeIter &rEntry)
void deleteTree(const weld::TreeIter &rIter)
const OUString m_delErrTitleStr
const OUString m_createErrStr
void RequestSubEntries(const weld::TreeIter &rRootEntry, css::uno::Reference< css::script::browse::XBrowseNode > const &node, css::uno::Reference< css::frame::XModel > &model)
virtual ~SvxScriptOrgDialog() override
css::uno::Reference< css::uno::XCurrentContext > NoEnableJavaInteractionContext()
static css::uno::Reference< css::uno::XInterface > getDocumentModel(css::uno::Reference< css::uno::XComponentContext > const &xCtx, std::u16string_view docName)
const OUString m_delQueryTitleStr
void StoreCurrentSelection()
OUString CuiResId(TranslateId aKey)
const css::uno::Reference< css::frame::XModel > & GetModel() const
#define TOOLS_WARN_EXCEPTION(area, stream)
virtual short run() override
const OUString m_createErrTitleStr
std::unique_ptr< weld::Button > m_xCloseButton
css::uno::Reference< css::frame::XModel > getModel(const weld::TreeIter &rEntry)
const OUString m_createDupStr
IMPL_STATIC_LINK(SvxScriptErrorDialog, ShowDialog, void *, p, void)
css::uno::Type const & get()
std::unique_ptr< weld::Button > m_xEditButton
void Init(std::u16string_view language)
const css::uno::Reference< css::script::browse::XBrowseNode > & GetNode() const
void insertEntry(OUString const &rText, OUString const &rBitmap, const weld::TreeIter *pParent, bool bChildrenOnDemand, std::unique_ptr< SFEntry > &&aUserData, std::u16string_view factoryURL, bool bSelect)
void RestorePreviousSelection()
OUString toId(const void *pValue)
std::unique_ptr< weld::Button > m_xRenameButton
SvxScriptOrgDialog(weld::Window *pParent, const OUString &language)
std::unordered_map< OUString, OUString > Selection_hash
static void ShowAsyncErrorDialog(weld::Window *pParent, css::uno::Any const &aException)
static SfxObjectShell * GetFirst(const std::function< bool(const SfxObjectShell *)> &isObjectShell=nullptr, bool bOnlyVisible=true)
const OUString m_delErrStr
Reference< XExecutableDialog > m_xDialog
Reference< XComponentContext > getProcessComponentContext()
IMPL_LINK(SvxScriptOrgDialog, ExpandingHdl, const weld::TreeIter &, rIter, bool)
void deleteEntry(const weld::TreeIter &rEntry)
Reference< XModel > xModel
static SfxObjectShell * GetNext(const SfxObjectShell &rPrev, const std::function< bool(const SfxObjectShell *)> &isObjectShell=nullptr, bool bOnlyVisible=true)
void CheckButtons(css::uno::Reference< css::script::browse::XBrowseNode > const &node)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, bool bMobile=false)
void renameEntry(const weld::TreeIter &rEntry)
static css::uno::Reference< css::script::browse::XBrowseNode > getLangNodeFromRootNode(css::uno::Reference< css::script::browse::XBrowseNode > const &root, std::u16string_view language)
std::unique_ptr< weld::Button > m_xRunButton