Menüeinträge in Extension von der Programmversion von OO/LO abhängig machen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 10698
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Menüeinträge in Extension von der Programmversion von OO/LO abhängig machen

Beitrag von Stephan » Fr, 09.06.2017 12:43

Hallo,

ich einer Extension verwende ich (beispielhaft) folgende Addon.xcu um ein Makro im Menü einzutragen:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
             xmlns:xs="http://www.w3.org/2001/XMLSchema"
             oor:name="Addons" oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
    <node oor:name="AddonMenu">
      <node oor:name="org.openoffice.comp.pyuno.demo.HelloWorld" oor:op="replace">
        <prop oor:name="URL" oor:type="xs:string">
          <value>vnd.sun.star.script:joesch.work.mak1?language=Basic&amp;location=application</value>
        </prop>
        <prop oor:name="ImageIdentifier" oor:type="xs:string">
          <value>private:image/3216</value>
        </prop>
        <prop oor:name="Title" oor:type="xs:string">
          <value>Makro1</value>
        </prop>
      </node>
    </node>
  </node>
</oor:component-data>
Gibt es eine Möglichkeit diesen Menüeintrag versionsabhängig von der OO/LO-Programmversion zu machen, d.h. der Eintrag soll beispielsweise in LO >= 5.2 angezeigt werden aber nicht in LO < 5.2.


Gruß
Stephan

Benutzeravatar
balu
********
Beiträge: 3682
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Menüeinträge in Extension von der Programmversion von OO/LO abhängig machen

Beitrag von balu » Fr, 09.06.2017 18:53

Hallo Stephan,

mit Extension hatte ich persönlich noch nicht gearbeitet, aber kannst Du nicht mit GetSolarVersion arbeiten?
Eine kleine Info dazu.
Ich habe nur die LibreOffice 5.1.5.2 als höchste 5.x Version bei mir auf der Platte. Und erstaunlicherweise spuckt mit GetSolarVersion diese Versionsnummer aus: 50105.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D

Stephan
********
Beiträge: 10698
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Menüeinträge in Extension von der Programmversion von OO/LO abhängig machen

Beitrag von Stephan » Fr, 09.06.2017 19:08

Hallo Balu,
aber kannst Du nicht mit GetSolarVersion arbeiten?
Nein das geht leider nicht, denn für die Menüeinträge muss ich ja in der Extension eine Datei vorgegebener Struktur hinterlegen und kann nicht per Makros etwas ermitteln.

siehe auch:
https://wiki.openoffice.org/wiki/Docume ... dOns/Menus


Gruß
Stephan

Karolus
********
Beiträge: 7063
Registriert: Mo, 02.01.2006 19:48
Kontaktdaten:

Re: Menüeinträge in Extension von der Programmversion von OO/LO abhängig machen

Beitrag von Karolus » Sa, 10.06.2017 00:08

Hallo

Der einfachste Weg dürfte sein, unterschiedliche Versionen deiner Extension anzubieten, zusätzlich zu den Unterschieden in der Addons.xcu müsstest du dann in der "description.xml" entsprechende Einträge einfügen, beispielhaft aus MRI-1.3.3:

<dependencies>
<OpenOffice.org-minimal-version value="3.4" d:name="OpenOffice.org 3.4" />
</dependencies>
AOO4, LO4.3, LO4.4 LinuxMint17.2

Stephan
********
Beiträge: 10698
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Menüeinträge in Extension von der Programmversion von OO/LO abhängig machen

Beitrag von Stephan » Sa, 10.06.2017 06:18

Hallo Karolus,

diese Möglichkeit ist mir bekannt, aber ich hoffte es gibt vielleicht einen anderen Weg. Evtl. auch einen Experimentellen, denn beispielsweise ist mir bekannt das es bezüglich des abweichenden Verhalten für Toolbars bzgl. Addon.xcu (siehe https://wiki.openoffice.org/wiki/Extens ... nd_AOO_4.x) beide Arten der Konfigurationseinträge vorzunehmen und OO/LO berücksichtigen den passenden Eintrag und ignorieren den zweiten, eigentlich ja falschen, Eintrag.

Meine jetzige Frage hatte folgenden Grund: ein Anwender will eine Extension für verschiedene Programmversionen nutzen, aber eine Programmfunktionalität in LibreOffice, die die Extension benötigt um darauf zuzugreifen existiert erst ab einer bestimmten LO-Version. Zwar habe ich im Programmcode der Extension schon eine Weiche eingebaut, aber den Anwender stört die Existenz des überflüssigen Menüeintrags in alten Versionen ansich.


Gruß
Stephan

Antworten