aait 2.1.3.2__tar.gz → 2.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. aait-2.2.1/PKG-INFO +9 -0
  2. aait-2.2.1/aait.egg-info/PKG-INFO +9 -0
  3. {aait-2.1.3.2 → aait-2.2.1}/aait.egg-info/SOURCES.txt +1 -11
  4. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/MetManagement.py +3 -0
  5. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/windows_utils.py +14 -12
  6. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWInputSelector.py +62 -20
  7. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +29 -6
  8. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +8 -8
  9. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +45 -45
  10. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +27 -27
  11. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +27 -27
  12. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +27 -27
  13. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +27 -27
  14. {aait-2.1.3.2 → aait-2.2.1}/setup.py +1 -1
  15. aait-2.1.3.2/PKG-INFO +0 -28
  16. aait-2.1.3.2/aait.egg-info/PKG-INFO +0 -28
  17. aait-2.1.3.2/tests/test_class_values_context_handler.py +0 -75
  18. aait-2.1.3.2/tests/test_credentials.py +0 -76
  19. aait-2.1.3.2/tests/test_domain_context_handler.py +0 -401
  20. aait-2.1.3.2/tests/test_gui.py +0 -140
  21. aait-2.1.3.2/tests/test_matplotlib_export.py +0 -43
  22. aait-2.1.3.2/tests/test_perfect_domain_context_handler.py +0 -148
  23. aait-2.1.3.2/tests/test_scatterplot_density.py +0 -59
  24. aait-2.1.3.2/tests/test_settings_handler.py +0 -27
  25. aait-2.1.3.2/tests/test_widgets_outputs.py +0 -29
  26. aait-2.1.3.2/tests/test_workflows.py +0 -80
  27. {aait-2.1.3.2 → aait-2.2.1}/License.txt +0 -0
  28. {aait-2.1.3.2 → aait-2.2.1}/aait.egg-info/dependency_links.txt +0 -0
  29. {aait-2.1.3.2 → aait-2.2.1}/aait.egg-info/entry_points.txt +0 -0
  30. {aait-2.1.3.2 → aait-2.2.1}/aait.egg-info/namespace_packages.txt +0 -0
  31. {aait-2.1.3.2 → aait-2.2.1}/aait.egg-info/requires.txt +0 -0
  32. {aait-2.1.3.2 → aait-2.2.1}/aait.egg-info/top_level.txt +0 -0
  33. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/__init__.py +0 -0
  34. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
  35. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
  36. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
  37. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
  38. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
  39. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
  40. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
  41. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
  42. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
  43. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
  44. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
  45. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
  46. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
  47. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
  48. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
  49. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
  50. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
  51. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
  52. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
  53. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
  54. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
  55. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
  56. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
  57. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
  58. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  59. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  60. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  61. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  62. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  63. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  64. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  65. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  66. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/__init__.py +0 -0
  67. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/answers.py +0 -0
  68. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/chunking.py +0 -0
  69. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  70. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  71. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  72. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  73. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  74. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  75. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  76. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  77. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/process_documents.py +0 -0
  78. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
  79. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  80. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/test.py +0 -0
  81. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  82. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/llm/translations.py +0 -0
  83. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  84. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  85. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
  86. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  87. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/__init__.py +0 -0
  88. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  89. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
  90. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  91. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  92. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  93. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
  94. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  95. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  96. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  97. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  98. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  99. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  100. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  101. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  102. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  103. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
  104. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
  105. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  106. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
  107. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
  108. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
  109. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
  110. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
  111. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
  112. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  113. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
  114. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
  115. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
  116. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
  117. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
  118. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
  119. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
  120. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
  121. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
  122. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -0
  123. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
  124. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
  125. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
  126. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +0 -0
  127. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  128. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
  129. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
  130. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
  131. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
  132. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  133. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  134. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
  135. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  136. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  137. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  138. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
  139. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  140. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  141. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  142. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  143. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  144. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  145. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  146. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  147. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
  148. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  149. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
  150. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
  151. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  152. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
  153. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
  154. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
  155. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
  156. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
  157. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
  158. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
  159. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
  160. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
  161. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
  162. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  163. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  164. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  165. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
  166. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  167. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  168. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  169. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  170. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  171. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
  172. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  173. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
  174. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  175. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
  176. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
  177. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
  178. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
  179. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
  180. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
  181. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
  182. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  183. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  184. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  185. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
  186. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  187. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  188. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  189. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
  190. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  191. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  192. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  193. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  194. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  195. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  196. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
  197. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
  198. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
  199. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
  200. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
  201. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
  202. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  203. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  204. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  205. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  206. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  207. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  208. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
  209. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
  210. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
  211. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
  212. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
  213. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  214. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  215. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
  216. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  217. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
  218. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  219. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  220. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  221. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  222. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  223. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  224. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  225. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
  226. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  227. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  228. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  229. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  230. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
  231. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  232. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  233. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  234. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  235. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  236. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  237. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  238. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  239. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  240. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  241. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
  242. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  243. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
  244. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
  245. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  246. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  247. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  248. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  249. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  250. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
  251. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
  252. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
  253. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
  254. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
  255. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
  256. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
  257. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  258. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  259. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
  260. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  261. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
  262. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  263. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  264. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  265. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  266. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  267. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
  268. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  269. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
  270. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  271. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  272. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  273. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  274. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  275. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
  276. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  277. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
  278. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  279. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
  280. {aait-2.1.3.2 → aait-2.2.1}/orangecontrib/__init__.py +0 -0
  281. {aait-2.1.3.2 → aait-2.2.1}/setup.cfg +0 -0
aait-2.2.1/PKG-INFO ADDED
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.2.1
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.2.1
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
@@ -264,14 +264,4 @@ orangecontrib/AAIT/widgets/icons/select_dynamic_row.png
264
264
  orangecontrib/AAIT/widgets/icons/startloop.png
265
265
  orangecontrib/AAIT/widgets/icons/tools.png
266
266
  orangecontrib/AAIT/widgets/icons/widgetFactory.svg
267
- orangecontrib/AAIT/widgets/icons/zip.svg
268
- tests/test_class_values_context_handler.py
269
- tests/test_credentials.py
270
- tests/test_domain_context_handler.py
271
- tests/test_gui.py
272
- tests/test_matplotlib_export.py
273
- tests/test_perfect_domain_context_handler.py
274
- tests/test_scatterplot_density.py
275
- tests/test_settings_handler.py
276
- tests/test_widgets_outputs.py
277
- tests/test_workflows.py
267
+ orangecontrib/AAIT/widgets/icons/zip.svg
@@ -1361,6 +1361,7 @@ def write_file_time(path):
1361
1361
  reset_files([time_ok])
1362
1362
  with open(path, "w") as f:
1363
1363
  f.write(str(time))
1364
+ f.flush()
1364
1365
  try:
1365
1366
  with open(time_ok, "w"):
1366
1367
  pass
@@ -1377,6 +1378,8 @@ def read_file_time(path):
1377
1378
  return 0 # time out
1378
1379
  with open(path, "r") as f:
1379
1380
  content = f.read()
1381
+ if content.isdigit()==False:
1382
+ return int(get_second_from_1970()) # en cas d'erreur on renvoie le temps actuel
1380
1383
  return int(content)
1381
1384
 
1382
1385
  def generate_unique_id_from_mac_timestamp():
@@ -54,7 +54,7 @@ if os.name=='nt':
54
54
 
55
55
  return not aborted
56
56
 
57
- def select_folder_ctypes():
57
+ def select_folder_ctypes(title="Select a directory"):
58
58
  """
59
59
  Opens a native Windows folder selection dialog with enforced modal-like behavior, without attaching to any parent window.
60
60
 
@@ -124,7 +124,7 @@ if os.name=='nt':
124
124
  browse_info.hwndOwner = 0
125
125
  browse_info.pidlRoot = None
126
126
  browse_info.pszDisplayName = ctypes.cast(display_name_buffer, ctypes.c_wchar_p)
127
- browse_info.lpszTitle = "Select a directory"
127
+ browse_info.lpszTitle = title
128
128
  browse_info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE
129
129
  browse_info.lpfn = None
130
130
  browse_info.lParam = None
@@ -198,7 +198,7 @@ if os.name=='nt':
198
198
  import ctypes.wintypes
199
199
 
200
200
 
201
- def select_file_ctypes(multi_select=False, file_filter="All Files (*.*)"):
201
+ def select_file_ctypes(multi_select=False, file_filter="All Files (*.*)", dialog_title="Select File(s)"):
202
202
  """
203
203
  Opens a native Windows file selection dialog with enforced modal-like behavior.
204
204
 
@@ -262,7 +262,7 @@ if os.name=='nt':
262
262
  ofn.lpstrFilter = filter_combined
263
263
  ofn.lpstrFile = ctypes.cast(file_buffer, ctypes.c_wchar_p)
264
264
  ofn.nMaxFile = MAX_PATH
265
- ofn.lpstrTitle = "Select File(s)"
265
+ ofn.lpstrTitle = dialog_title
266
266
  ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST
267
267
  if multi_select:
268
268
  ofn.Flags |= OFN_ALLOWMULTISELECT
@@ -291,12 +291,13 @@ if os.name=='nt':
291
291
  new_hwnds = list(set(hwnd_list_after) - set(hwnd_list_before))
292
292
 
293
293
  selector_hwnd = None
294
+ target_phrase = (dialog_title or "Select").lower()
294
295
  for hwnd in new_hwnds:
295
296
  length = user32.GetWindowTextLengthW(hwnd)
296
297
  if length > 0:
297
- title = ctypes.create_unicode_buffer(length + 1)
298
- user32.GetWindowTextW(hwnd, title, length + 1)
299
- if "Select" in title.value:
298
+ window_title = ctypes.create_unicode_buffer(length + 1)
299
+ user32.GetWindowTextW(hwnd, window_title, length + 1)
300
+ if target_phrase in window_title.value.lower():
300
301
  selector_hwnd = hwnd
301
302
  break
302
303
 
@@ -335,7 +336,7 @@ if os.name=='nt':
335
336
 
336
337
 
337
338
 
338
- def select_new_file_ctypes(file_filter="All Files (*.*)"):
339
+ def select_new_file_ctypes(file_filter="All Files (*.*)", dialog_title="Create New File"):
339
340
  """
340
341
  Opens a native Windows file dialog for creating a new file.
341
342
 
@@ -401,7 +402,7 @@ def select_new_file_ctypes(file_filter="All Files (*.*)"):
401
402
  ofn.lpstrFilter = filter_combined
402
403
  ofn.lpstrFile = ctypes.cast(file_buffer, ctypes.c_wchar_p)
403
404
  ofn.nMaxFile = MAX_PATH
404
- ofn.lpstrTitle = "Create New File"
405
+ ofn.lpstrTitle = dialog_title
405
406
  ofn.Flags = OFN_EXPLORER
406
407
  ofn.lpstrDefExt = first_ext # <- extension ajoutée automatiquement si absente
407
408
 
@@ -427,12 +428,13 @@ def select_new_file_ctypes(file_filter="All Files (*.*)"):
427
428
  new_hwnds = list(set(hwnd_list_after) - set(hwnd_list_before))
428
429
 
429
430
  selector_hwnd = None
431
+ target_phrase = (dialog_title or "Save").lower()
430
432
  for hwnd in new_hwnds:
431
433
  length = user32.GetWindowTextLengthW(hwnd)
432
434
  if length > 0:
433
- title = ctypes.create_unicode_buffer(length + 1)
434
- user32.GetWindowTextW(hwnd, title, length + 1)
435
- if "Save" in title.value:
435
+ window_title = ctypes.create_unicode_buffer(length + 1)
436
+ user32.GetWindowTextW(hwnd, window_title, length + 1)
437
+ if target_phrase in window_title.value.lower():
436
438
  selector_hwnd = hwnd
437
439
  break
438
440
 
@@ -38,6 +38,7 @@ class OWInputSelector(OWWidget):
38
38
  new_file:str = Setting("False")
39
39
  combo_box_current_text: str=Setting("All (*.*)")
40
40
  line_edit_value:str=Setting("")
41
+ dialog_window_title: str = Setting("")
41
42
  def update_qt_view_from_settings(self):
42
43
  if str(self.select_folder_radio_button_checked) =="True":
43
44
  self.radioButton.setChecked(True)
@@ -45,6 +46,7 @@ class OWInputSelector(OWWidget):
45
46
  self.checkBox.hide()
46
47
  self.comboBox.hide()
47
48
  self.checkBox_new_file.hide()
49
+ self.update_dialog_title_placeholder()
48
50
  return
49
51
  self.radioButton.setChecked(False)
50
52
  self.radioButton2.setChecked(True)
@@ -70,6 +72,7 @@ class OWInputSelector(OWWidget):
70
72
  self.checkBox.show()
71
73
  self.comboBox.show()
72
74
  self.checkBox_new_file.show()
75
+ self.update_dialog_title_placeholder()
73
76
 
74
77
 
75
78
  def update_setting_from_qt_view(self):
@@ -107,7 +110,7 @@ class OWInputSelector(OWWidget):
107
110
 
108
111
 
109
112
  self.setFixedWidth(700)
110
- self.setFixedHeight(300)
113
+ self.setFixedHeight(400)
111
114
  uic.loadUi(self.gui, self)
112
115
  self.radioButton=self.findChild(QRadioButton, 'radioButton')
113
116
  self.radioButton2 = self.findChild(QRadioButton, 'radioButton_2')
@@ -117,6 +120,14 @@ class OWInputSelector(OWWidget):
117
120
  self.pushButton = self.findChild(QPushButton, 'pushButton')
118
121
  self.lineEdit=self.findChild(QLineEdit,'lineEdit')
119
122
  self.lineEdit.setText(self.line_edit_value)
123
+ self.windowTitleEdit = self.findChild(QLineEdit, 'lineEdit_window_title')
124
+ if self.windowTitleEdit is not None:
125
+ sanitized_title = (self.dialog_window_title or "").strip()
126
+ if sanitized_title != self.dialog_window_title:
127
+ self.dialog_window_title = sanitized_title
128
+ self.windowTitleEdit.setText(sanitized_title)
129
+ self.update_dialog_title_placeholder()
130
+ self.windowTitleEdit.editingFinished.connect(self.update_dialog_title_setting)
120
131
 
121
132
  # based on the string you can modify orders and add without problem
122
133
  file_types = [
@@ -264,6 +275,35 @@ class OWInputSelector(OWWidget):
264
275
  self.checkBox_new_file.setEnabled(False)
265
276
  self.comboBox.setEnabled(False)
266
277
 
278
+ def update_dialog_title_setting(self):
279
+ if getattr(self, 'windowTitleEdit', None) is None:
280
+ return
281
+ value = self.windowTitleEdit.text().strip()
282
+ if self.windowTitleEdit.text() != value:
283
+ self.windowTitleEdit.setText(value)
284
+ self.dialog_window_title = value
285
+ self.update_dialog_title_placeholder()
286
+
287
+ def get_default_dialog_title(self):
288
+ if str(self.select_folder_radio_button_checked) == "True":
289
+ return "Select a directory"
290
+ if str(self.new_file) == "True":
291
+ return "Create New File"
292
+ return "Select File(s)"
293
+
294
+ def get_effective_dialog_title(self):
295
+ default_title = self.get_default_dialog_title()
296
+ if self.dialog_window_title:
297
+ value = self.dialog_window_title.strip()
298
+ if value:
299
+ return value
300
+ return default_title
301
+
302
+ def update_dialog_title_placeholder(self):
303
+ if getattr(self, 'windowTitleEdit', None) is None:
304
+ return
305
+ self.windowTitleEdit.setPlaceholderText(self.get_default_dialog_title())
306
+
267
307
 
268
308
  @Inputs.input_table
269
309
  def input_table(self, data):
@@ -279,7 +319,7 @@ class OWInputSelector(OWWidget):
279
319
  self.commit_path()
280
320
  return
281
321
  if str(self.select_folder_radio_button_checked) =="True":
282
- self.selected_path=self.select_folder()
322
+ self.selected_path = self.select_folder(self.get_effective_dialog_title())
283
323
  if self.selected_path is None:
284
324
  self.selected_path=""
285
325
  if self.selected_path=="":
@@ -290,10 +330,11 @@ class OWInputSelector(OWWidget):
290
330
  if str(self.select_multiple_file_checked)!="False":
291
331
  multi_select=True
292
332
  file_filter=str(self.combo_box_current_text)
333
+ dialog_title = self.get_effective_dialog_title()
293
334
  if str(self.new_file)=="False":
294
- self.selected_path=self.select_file(multi_select,file_filter)
335
+ self.selected_path = self.select_file(multi_select, file_filter, dialog_title)
295
336
  else:
296
- self.selected_path = self.select_new_file(file_filter)
337
+ self.selected_path = self.select_new_file(file_filter, dialog_title)
297
338
  if self.selected_path is None:
298
339
  self.selected_path = ""
299
340
  if self.selected_path == "":
@@ -301,42 +342,43 @@ class OWInputSelector(OWWidget):
301
342
  self.commit_path()
302
343
  return
303
344
 
304
- def select_file(self,multi_select,file_filtter):
345
+ def select_file(self, multi_select, file_filter, dialog_title):
305
346
  if os.name == 'nt':
306
- return windows_utils.select_file_ctypes(multi_select=multi_select, file_filter=file_filtter)
347
+ return windows_utils.select_file_ctypes(
348
+ multi_select=multi_select,
349
+ file_filter=file_filter,
350
+ dialog_title=dialog_title
351
+ )
307
352
  print("a faire correctement sans qt sur mac (et linux")
308
353
  from AnyQt.QtWidgets import QFileDialog
309
354
  files, _ = QFileDialog.getOpenFileNames(
310
355
  self, # parent
311
- "Sélectionner des fichiers", # titre de la fenêtre
312
- "", # répertoire initial
313
- "Tous les fichiers (*.*)" # filtre
356
+ dialog_title, # window title
357
+ "", # initial directory
358
+ file_filter # filter
314
359
  )
315
360
  return files
316
361
 
317
- def select_new_file(self,file_filtter):
362
+ def select_new_file(self, file_filter, dialog_title):
318
363
  if os.name == 'nt':
319
- return windows_utils.select_new_file_ctypes(file_filter=file_filtter)
364
+ return windows_utils.select_new_file_ctypes(file_filter=file_filter, dialog_title=dialog_title)
320
365
  print("a faire correctement sans qt sur mac (et linux")
321
366
  from AnyQt.QtWidgets import QFileDialog
322
367
  files, _ = QFileDialog.getSaveFileName(
323
368
  self, # parent
324
- "Créer un fichier", # titre de la fenêtre
325
- "", # répertoire initial
326
- "Tous les fichiers (*.*)" # filtre
369
+ dialog_title, # window title
370
+ "", # initial directory
371
+ file_filter # filter
327
372
  )
328
373
  return str(files)
329
374
 
330
-
331
-
332
-
333
- def select_folder(self):
375
+ def select_folder(self, dialog_title):
334
376
  if os.name=='nt':
335
- return windows_utils.select_folder_ctypes()
377
+ return windows_utils.select_folder_ctypes(title=dialog_title)
336
378
  # a faire correctement sans qt sur mac
337
379
  print("a faire correctement sans qt sur mac (et linux")
338
380
  from AnyQt.QtWidgets import QFileDialog
339
- return QFileDialog.getExistingDirectory(self, "Sélectionner un dossier")
381
+ return QFileDialog.getExistingDirectory(self, dialog_title)
340
382
 
341
383
  def commit_path(self):
342
384
  self.error("")
@@ -6,8 +6,8 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>711</width>
10
- <height>324</height>
9
+ <width>717</width>
10
+ <height>382</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
@@ -17,7 +17,7 @@
17
17
  <property name="geometry">
18
18
  <rect>
19
19
  <x>180</x>
20
- <y>220</y>
20
+ <y>270</y>
21
21
  <width>501</width>
22
22
  <height>51</height>
23
23
  </rect>
@@ -30,7 +30,7 @@
30
30
  <property name="geometry">
31
31
  <rect>
32
32
  <x>30</x>
33
- <y>190</y>
33
+ <y>240</y>
34
34
  <width>651</width>
35
35
  <height>20</height>
36
36
  </rect>
@@ -40,7 +40,7 @@
40
40
  <property name="geometry">
41
41
  <rect>
42
42
  <x>20</x>
43
- <y>30</y>
43
+ <y>80</y>
44
44
  <width>671</width>
45
45
  <height>151</height>
46
46
  </rect>
@@ -114,6 +114,29 @@
114
114
  </property>
115
115
  </widget>
116
116
  </widget>
117
+ <widget class="QLabel" name="label_window_title">
118
+ <property name="geometry">
119
+ <rect>
120
+ <x>20</x>
121
+ <y>30</y>
122
+ <width>211</width>
123
+ <height>16</height>
124
+ </rect>
125
+ </property>
126
+ <property name="text">
127
+ <string>Windows dialog title (optional)</string>
128
+ </property>
129
+ </widget>
130
+ <widget class="QLineEdit" name="lineEdit_window_title">
131
+ <property name="geometry">
132
+ <rect>
133
+ <x>20</x>
134
+ <y>50</y>
135
+ <width>651</width>
136
+ <height>20</height>
137
+ </rect>
138
+ </property>
139
+ </widget>
117
140
  <widget class="QCheckBox" name="checkBox_3_send">
118
141
  <property name="enabled">
119
142
  <bool>false</bool>
@@ -121,7 +144,7 @@
121
144
  <property name="geometry">
122
145
  <rect>
123
146
  <x>20</x>
124
- <y>238</y>
147
+ <y>330</y>
125
148
  <width>201</width>
126
149
  <height>16</height>
127
150
  </rect>
@@ -1,9 +1,9 @@
1
- <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
- <svg width="800px" height="800px" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
3
- <rect width="48" height="48" fill="white" fill-opacity="0.01"/>
4
- <path d="M40 4V18L8 30L8 44" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
5
- <path d="M8 22V17" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
6
- <path d="M8 9V4" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
7
- <path d="M40 44V39" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
8
- <path d="M40 31V26" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg width="800px" height="800px" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <rect width="48" height="48" fill="white" fill-opacity="0.01"/>
4
+ <path d="M40 4V18L8 30L8 44" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M8 22V17" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M8 9V4" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
7
+ <path d="M40 44V39" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path d="M40 31V26" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
9
9
  </svg>
@@ -1,45 +1,45 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="982.000000pt" height="913.000000pt" viewBox="0 0 982.000000 913.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
-
8
- <g transform="translate(0.000000,913.000000) scale(0.100000,-0.100000)"
9
- fill="#000000" stroke="none">
10
- <path d="M2360 8869 c-974 -9 -1334 -20 -1397 -43 -55 -19 -148 -78 -196 -125
11
- -56 -52 -122 -147 -157 -225 l-30 -68 0 -2711 0 -2712 50 -85 c89 -148 247
12
- -284 365 -310 72 -16 665 -29 1356 -30 l596 0 7 -552 c4 -304 11 -582 16 -618
13
- 14 -102 78 -219 170 -311 60 -60 96 -86 177 -127 l101 -52 1102 0 1102 0 116
14
- -101 c174 -151 278 -221 472 -318 350 -175 599 -233 1000 -234 333 -1 566 40
15
- 814 144 445 186 778 457 1029 839 484 738 459 1700 -64 2435 -175 247 -427
16
- 467 -761 666 l-57 34 -1 455 c-1 536 -6 618 -49 704 -42 85 -197 251 -583 622
17
- -590 568 -691 658 -763 680 -59 18 -404 33 -752 34 l-233 0 0 243 c0 133 -5
18
- 285 -10 337 -9 84 -14 101 -44 144 -113 162 -1085 1116 -1265 1240 -20 14 -59
19
- 31 -86 37 -67 15 -938 19 -2025 8z m1754 -811 c4 -271 11 -445 19 -483 21
20
- -102 118 -224 229 -289 67 -39 157 -45 631 -46 l397 0 0 -189 0 -189 -1007 -7
21
- -1008 -7 -80 -46 c-107 -61 -227 -181 -278 -280 l-38 -73 -10 -227 c-5 -125
22
- -12 -910 -15 -1744 l-7 -1518 -942 0 -941 0 -47 48 -47 48 0 2519 c0 1420 4
23
- 2581 9 2659 10 149 16 167 75 210 27 21 41 21 664 26 350 3 1031 7 1513 8
24
- l876 2 7 -422z m805 -191 l213 -215 -249 -7 c-138 -4 -264 -4 -280 -1 -17 4
25
- -39 16 -49 28 -17 18 -19 44 -22 296 l-3 275 88 -81 c48 -44 184 -177 302
26
- -295z m1591 -1609 c1 -319 16 -657 31 -698 24 -66 90 -168 137 -212 26 -25 79
27
- -60 116 -78 91 -43 169 -49 619 -50 l357 0 0 -351 0 -351 -27 6 c-190 40 -285
28
- 49 -528 49 -189 0 -278 -4 -365 -17 -352 -54 -655 -186 -965 -419 -102 -77
29
- -312 -288 -392 -392 -301 -398 -453 -843 -453 -1331 0 -352 58 -610 214 -957
30
- 40 -89 72 -165 70 -169 -2 -3 -421 -4 -930 -1 l-925 6 -54 56 -55 56 1 2290
31
- c0 1260 4 2377 8 2483 l8 193 34 35 c19 20 43 41 54 47 26 15 625 22 2008 25
32
- l1037 2 0 -222z m845 -477 l160 -161 -225 1 c-124 1 -252 4 -285 8 l-60 6 -7
33
- 40 c-4 22 -10 150 -14 285 l-7 245 139 -132 c76 -72 211 -204 299 -292z m170
34
- -1621 c401 -79 764 -286 1019 -581 297 -344 446 -733 446 -1163 0 -276 -50
35
- -517 -156 -743 -206 -444 -570 -768 -1064 -946 -190 -68 -223 -72 -560 -72
36
- -285 1 -298 1 -400 27 -216 54 -440 157 -616 280 -101 72 -289 249 -376 356
37
- -198 241 -319 531 -359 855 -16 138 -6 443 19 567 57 276 151 496 302 705 299
38
- 415 735 670 1260 739 89 11 377 -3 485 -24z"/>
39
- <path d="M8035 3221 c-44 -21 -134 -111 -401 -401 -235 -256 -579 -622 -642
40
- -683 l-49 -48 -74 59 c-41 33 -156 139 -256 236 -226 218 -250 236 -314 236
41
- -117 0 -188 -76 -189 -202 0 -51 4 -61 44 -115 47 -61 528 -544 629 -632 72
42
- -61 133 -78 224 -62 70 13 62 6 412 381 357 382 779 853 855 955 36 47 38 52
43
- 34 115 -3 54 -9 72 -33 104 -54 72 -157 96 -240 57z"/>
44
- </g>
45
- </svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="982.000000pt" height="913.000000pt" viewBox="0 0 982.000000 913.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <g transform="translate(0.000000,913.000000) scale(0.100000,-0.100000)"
9
+ fill="#000000" stroke="none">
10
+ <path d="M2360 8869 c-974 -9 -1334 -20 -1397 -43 -55 -19 -148 -78 -196 -125
11
+ -56 -52 -122 -147 -157 -225 l-30 -68 0 -2711 0 -2712 50 -85 c89 -148 247
12
+ -284 365 -310 72 -16 665 -29 1356 -30 l596 0 7 -552 c4 -304 11 -582 16 -618
13
+ 14 -102 78 -219 170 -311 60 -60 96 -86 177 -127 l101 -52 1102 0 1102 0 116
14
+ -101 c174 -151 278 -221 472 -318 350 -175 599 -233 1000 -234 333 -1 566 40
15
+ 814 144 445 186 778 457 1029 839 484 738 459 1700 -64 2435 -175 247 -427
16
+ 467 -761 666 l-57 34 -1 455 c-1 536 -6 618 -49 704 -42 85 -197 251 -583 622
17
+ -590 568 -691 658 -763 680 -59 18 -404 33 -752 34 l-233 0 0 243 c0 133 -5
18
+ 285 -10 337 -9 84 -14 101 -44 144 -113 162 -1085 1116 -1265 1240 -20 14 -59
19
+ 31 -86 37 -67 15 -938 19 -2025 8z m1754 -811 c4 -271 11 -445 19 -483 21
20
+ -102 118 -224 229 -289 67 -39 157 -45 631 -46 l397 0 0 -189 0 -189 -1007 -7
21
+ -1008 -7 -80 -46 c-107 -61 -227 -181 -278 -280 l-38 -73 -10 -227 c-5 -125
22
+ -12 -910 -15 -1744 l-7 -1518 -942 0 -941 0 -47 48 -47 48 0 2519 c0 1420 4
23
+ 2581 9 2659 10 149 16 167 75 210 27 21 41 21 664 26 350 3 1031 7 1513 8
24
+ l876 2 7 -422z m805 -191 l213 -215 -249 -7 c-138 -4 -264 -4 -280 -1 -17 4
25
+ -39 16 -49 28 -17 18 -19 44 -22 296 l-3 275 88 -81 c48 -44 184 -177 302
26
+ -295z m1591 -1609 c1 -319 16 -657 31 -698 24 -66 90 -168 137 -212 26 -25 79
27
+ -60 116 -78 91 -43 169 -49 619 -50 l357 0 0 -351 0 -351 -27 6 c-190 40 -285
28
+ 49 -528 49 -189 0 -278 -4 -365 -17 -352 -54 -655 -186 -965 -419 -102 -77
29
+ -312 -288 -392 -392 -301 -398 -453 -843 -453 -1331 0 -352 58 -610 214 -957
30
+ 40 -89 72 -165 70 -169 -2 -3 -421 -4 -930 -1 l-925 6 -54 56 -55 56 1 2290
31
+ c0 1260 4 2377 8 2483 l8 193 34 35 c19 20 43 41 54 47 26 15 625 22 2008 25
32
+ l1037 2 0 -222z m845 -477 l160 -161 -225 1 c-124 1 -252 4 -285 8 l-60 6 -7
33
+ 40 c-4 22 -10 150 -14 285 l-7 245 139 -132 c76 -72 211 -204 299 -292z m170
34
+ -1621 c401 -79 764 -286 1019 -581 297 -344 446 -733 446 -1163 0 -276 -50
35
+ -517 -156 -743 -206 -444 -570 -768 -1064 -946 -190 -68 -223 -72 -560 -72
36
+ -285 1 -298 1 -400 27 -216 54 -440 157 -616 280 -101 72 -289 249 -376 356
37
+ -198 241 -319 531 -359 855 -16 138 -6 443 19 567 57 276 151 496 302 705 299
38
+ 415 735 670 1260 739 89 11 377 -3 485 -24z"/>
39
+ <path d="M8035 3221 c-44 -21 -134 -111 -401 -401 -235 -256 -579 -622 -642
40
+ -683 l-49 -48 -74 59 c-41 33 -156 139 -256 236 -226 218 -250 236 -314 236
41
+ -117 0 -188 -76 -189 -202 0 -51 4 -61 44 -115 47 -61 528 -544 629 -632 72
42
+ -61 133 -78 224 -62 70 13 62 6 412 381 357 382 779 853 855 955 36 47 38 52
43
+ 34 115 -3 54 -9 72 -33 104 -54 72 -157 96 -240 57z"/>
44
+ </g>
45
+ </svg>
@@ -1,27 +1,27 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Modified SVG -->
3
- <svg fill="#000000" width="900px" height="900px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
4
- <defs>
5
- <style>
6
- .cls-1 {
7
- fill: none;
8
- }
9
- .text-style {
10
- font-size: 4px; /* Adjust size to fit */
11
- fill: #000000; /* Text color */
12
- text-anchor: middle; /* Center align text */
13
- }
14
- </style>
15
- </defs>
16
-
17
- <!-- Grouping icon paths and moving it upward with transform -->
18
- <g transform="translate(2.5, 2) scale(0.8)"> <!-- Adjust the Y-axis value to move it upward -->
19
- <path d="M27,24a2.9609,2.9609,0,0,0-1.2854.3008L21.4141,20H18v2h2.5859l3.7146,3.7148A2.9665,2.9665,0,0,0,24,27a3,3,0,1,0,3-3Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,28Z"/>
20
- <path d="M27,13a2.9948,2.9948,0,0,0-2.8157,2H18v2h6.1843A2.9947,2.9947,0,1,0,27,13Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,17Z"/>
21
- <path d="M27,2a3.0033,3.0033,0,0,0-3,3,2.9657,2.9657,0,0,0,.3481,1.373L20.5957,10H18v2h3.4043l4.3989-4.2524A2.9987,2.9987,0,1,0,27,2Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,6Z"/>
22
- <path d="M18,6h2V4H18a3.9756,3.9756,0,0,0-3,1.3823A3.9756,3.9756,0,0,0,12,4H11a9.01,9.01,0,0,0-9,9v6a9.01,9.01,0,0,0,9,9h1a3.9756,3.9756,0,0,0,3-1.3823A3.9756,3.9756,0,0,0,18,28h2V26H18a2.0023,2.0023,0,0,1-2-2V8A2.0023,2.0023,0,0,1,18,6ZM12,26H11a7.0047,7.0047,0,0,1-6.92-6H6V18H4V14H7a3.0033,3.0033,0,0,0,3-3V9H8v2a1.0009,1.0009,0,0,1-1,1H4.08A7.0047,7.0047,0,0,1,11,6h1a2.0023,2.0023,0,0,1,2,2v4H12v2h2v4H12a3.0033,3.0033,0,0,0-3,3v2h2V21a1.0009,1.0009,0,0,1,1-1h2v4A2.0023,2.0023,0,0,1,12,26Z"/>
23
- </g>
24
-
25
- <!-- Text under the icon -->
26
- <text x="16" y="30" class="text-style">Helsinki EN-FR</text>
27
- </svg>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Modified SVG -->
3
+ <svg fill="#000000" width="900px" height="900px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <style>
6
+ .cls-1 {
7
+ fill: none;
8
+ }
9
+ .text-style {
10
+ font-size: 4px; /* Adjust size to fit */
11
+ fill: #000000; /* Text color */
12
+ text-anchor: middle; /* Center align text */
13
+ }
14
+ </style>
15
+ </defs>
16
+
17
+ <!-- Grouping icon paths and moving it upward with transform -->
18
+ <g transform="translate(2.5, 2) scale(0.8)"> <!-- Adjust the Y-axis value to move it upward -->
19
+ <path d="M27,24a2.9609,2.9609,0,0,0-1.2854.3008L21.4141,20H18v2h2.5859l3.7146,3.7148A2.9665,2.9665,0,0,0,24,27a3,3,0,1,0,3-3Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,28Z"/>
20
+ <path d="M27,13a2.9948,2.9948,0,0,0-2.8157,2H18v2h6.1843A2.9947,2.9947,0,1,0,27,13Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,17Z"/>
21
+ <path d="M27,2a3.0033,3.0033,0,0,0-3,3,2.9657,2.9657,0,0,0,.3481,1.373L20.5957,10H18v2h3.4043l4.3989-4.2524A2.9987,2.9987,0,1,0,27,2Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,6Z"/>
22
+ <path d="M18,6h2V4H18a3.9756,3.9756,0,0,0-3,1.3823A3.9756,3.9756,0,0,0,12,4H11a9.01,9.01,0,0,0-9,9v6a9.01,9.01,0,0,0,9,9h1a3.9756,3.9756,0,0,0,3-1.3823A3.9756,3.9756,0,0,0,18,28h2V26H18a2.0023,2.0023,0,0,1-2-2V8A2.0023,2.0023,0,0,1,18,6ZM12,26H11a7.0047,7.0047,0,0,1-6.92-6H6V18H4V14H7a3.0033,3.0033,0,0,0,3-3V9H8v2a1.0009,1.0009,0,0,1-1,1H4.08A7.0047,7.0047,0,0,1,11,6h1a2.0023,2.0023,0,0,1,2,2v4H12v2h2v4H12a3.0033,3.0033,0,0,0-3,3v2h2V21a1.0009,1.0009,0,0,1,1-1h2v4A2.0023,2.0023,0,0,1,12,26Z"/>
23
+ </g>
24
+
25
+ <!-- Text under the icon -->
26
+ <text x="16" y="30" class="text-style">Helsinki EN-FR</text>
27
+ </svg>
@@ -1,27 +1,27 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Modified SVG -->
3
- <svg fill="#000000" width="900px" height="900px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
4
- <defs>
5
- <style>
6
- .cls-1 {
7
- fill: none;
8
- }
9
- .text-style {
10
- font-size: 4px; /* Adjust size to fit */
11
- fill: #000000; /* Text color */
12
- text-anchor: middle; /* Center align text */
13
- }
14
- </style>
15
- </defs>
16
-
17
- <!-- Grouping icon paths and moving it upward with transform -->
18
- <g transform="translate(2.5, 2) scale(0.8)"> <!-- Adjust the Y-axis value to move it upward -->
19
- <path d="M27,24a2.9609,2.9609,0,0,0-1.2854.3008L21.4141,20H18v2h2.5859l3.7146,3.7148A2.9665,2.9665,0,0,0,24,27a3,3,0,1,0,3-3Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,28Z"/>
20
- <path d="M27,13a2.9948,2.9948,0,0,0-2.8157,2H18v2h6.1843A2.9947,2.9947,0,1,0,27,13Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,17Z"/>
21
- <path d="M27,2a3.0033,3.0033,0,0,0-3,3,2.9657,2.9657,0,0,0,.3481,1.373L20.5957,10H18v2h3.4043l4.3989-4.2524A2.9987,2.9987,0,1,0,27,2Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,6Z"/>
22
- <path d="M18,6h2V4H18a3.9756,3.9756,0,0,0-3,1.3823A3.9756,3.9756,0,0,0,12,4H11a9.01,9.01,0,0,0-9,9v6a9.01,9.01,0,0,0,9,9h1a3.9756,3.9756,0,0,0,3-1.3823A3.9756,3.9756,0,0,0,18,28h2V26H18a2.0023,2.0023,0,0,1-2-2V8A2.0023,2.0023,0,0,1,18,6ZM12,26H11a7.0047,7.0047,0,0,1-6.92-6H6V18H4V14H7a3.0033,3.0033,0,0,0,3-3V9H8v2a1.0009,1.0009,0,0,1-1,1H4.08A7.0047,7.0047,0,0,1,11,6h1a2.0023,2.0023,0,0,1,2,2v4H12v2h2v4H12a3.0033,3.0033,0,0,0-3,3v2h2V21a1.0009,1.0009,0,0,1,1-1h2v4A2.0023,2.0023,0,0,1,12,26Z"/>
23
- </g>
24
-
25
- <!-- Text under the icon -->
26
- <text x="16" y="30" class="text-style">Helsinki FR-EN</text>
27
- </svg>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Modified SVG -->
3
+ <svg fill="#000000" width="900px" height="900px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <style>
6
+ .cls-1 {
7
+ fill: none;
8
+ }
9
+ .text-style {
10
+ font-size: 4px; /* Adjust size to fit */
11
+ fill: #000000; /* Text color */
12
+ text-anchor: middle; /* Center align text */
13
+ }
14
+ </style>
15
+ </defs>
16
+
17
+ <!-- Grouping icon paths and moving it upward with transform -->
18
+ <g transform="translate(2.5, 2) scale(0.8)"> <!-- Adjust the Y-axis value to move it upward -->
19
+ <path d="M27,24a2.9609,2.9609,0,0,0-1.2854.3008L21.4141,20H18v2h2.5859l3.7146,3.7148A2.9665,2.9665,0,0,0,24,27a3,3,0,1,0,3-3Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,28Z"/>
20
+ <path d="M27,13a2.9948,2.9948,0,0,0-2.8157,2H18v2h6.1843A2.9947,2.9947,0,1,0,27,13Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,17Z"/>
21
+ <path d="M27,2a3.0033,3.0033,0,0,0-3,3,2.9657,2.9657,0,0,0,.3481,1.373L20.5957,10H18v2h3.4043l4.3989-4.2524A2.9987,2.9987,0,1,0,27,2Zm0,4a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,27,6Z"/>
22
+ <path d="M18,6h2V4H18a3.9756,3.9756,0,0,0-3,1.3823A3.9756,3.9756,0,0,0,12,4H11a9.01,9.01,0,0,0-9,9v6a9.01,9.01,0,0,0,9,9h1a3.9756,3.9756,0,0,0,3-1.3823A3.9756,3.9756,0,0,0,18,28h2V26H18a2.0023,2.0023,0,0,1-2-2V8A2.0023,2.0023,0,0,1,18,6ZM12,26H11a7.0047,7.0047,0,0,1-6.92-6H6V18H4V14H7a3.0033,3.0033,0,0,0,3-3V9H8v2a1.0009,1.0009,0,0,1-1,1H4.08A7.0047,7.0047,0,0,1,11,6h1a2.0023,2.0023,0,0,1,2,2v4H12v2h2v4H12a3.0033,3.0033,0,0,0-3,3v2h2V21a1.0009,1.0009,0,0,1,1-1h2v4A2.0023,2.0023,0,0,1,12,26Z"/>
23
+ </g>
24
+
25
+ <!-- Text under the icon -->
26
+ <text x="16" y="30" class="text-style">Helsinki FR-EN</text>
27
+ </svg>