VirtualBox

Changeset 30026 in vbox for trunk


Ignore:
Timestamp:
Jun 4, 2010 10:19:31 AM (15 years ago)
Author:
vboxsync
Message:

FE/Qt4: add extra data helpers to CMachine/CVirtualBox per XSL

Location:
trunk/src/VBox/Frontends/VirtualBox/src/globals
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h

    r28800 r30026  
    7878/* Qt includes */
    7979#include <QString>
     80#include <QRect>
    8081#include <QUuid>
    8182#include <QVector>
     83#include <QList>
    8284#include <QMetaType>
    8385
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/COMWrappers.xsl

    r28800 r30026  
    379379</xsl:template>
    380380
     381<xsl:template name="declareExtraDataHelpers">
     382
     383<xsl:text>    void SetExtraDataBool(const QString &amp;strKey, bool fValue);
     384    bool GetExtraDataBool(const QString &amp;strKey, bool fDef = true);
     385
     386    void SetExtraDataInt(const QString &amp;strKey, int value);
     387    int GetExtraDataInt(const QString &amp;strKey, int def = 0);
     388
     389    void SetExtraDataRect(const QString &amp;strKey, const QRect &amp;value);
     390    QRect GetExtraDataRect(const QString &amp;strKey, const QRect &amp;def = QRect());
     391
     392    void SetExtraDataStringList(const QString &amp;strKey, const QStringList &amp;value);
     393    QStringList GetExtraDataStringList(const QString &amp;strKey);
     394
     395    void SetExtraDataIntList(const QString &amp;strKey, const QList&lt;int&gt; &amp;value);
     396    QList&lt;int&gt; GetExtraDataIntList(const QString &amp;strKey);
     397
     398</xsl:text>
     399
     400</xsl:template>
     401
    381402<xsl:template name="declareMembers">
    382403
     
    476497    <xsl:with-param name="iface" select="."/>
    477498  </xsl:call-template>
     499
     500  <xsl:if test="@name='IVirtualBox' or @name='IMachine'">
     501    <xsl:text>    // ExtraData helpers&#x0A;&#x0A;</xsl:text>
     502    <xsl:call-template name="declareExtraDataHelpers">
     503      <xsl:with-param name="iface" select="."/>
     504    </xsl:call-template>
     505  </xsl:if>
    478506
    479507  <xsl:text>    // friend wrappers&#x0A;&#x0A;</xsl:text>
     
    651679</xsl:template>
    652680
     681<xsl:template name="defineExtraDataHelpers">
     682
     683  <xsl:param name="iface"/>
     684
     685  <xsl:text>void C</xsl:text>
     686  <xsl:value-of select="substring(@name,2)"/>
     687  <xsl:text>::SetExtraDataBool(const QString &amp;strKey, bool fValue)</xsl:text>
     688<xsl:text>
     689{
     690    SetExtraData(strKey, fValue == true ? "true" : "false");
     691}
     692
     693</xsl:text>
     694
     695  <xsl:text>bool C</xsl:text>
     696  <xsl:value-of select="substring(@name,2)"/>
     697  <xsl:text>::GetExtraDataBool(const QString &amp;strKey, bool fDef /* = true */)</xsl:text>
     698<xsl:text>
     699{
     700    bool fResult = fDef;
     701    QString value = GetExtraData(strKey);
     702    if (   value == "true"
     703        || value == "on"
     704        || value == "yes")
     705        fResult = true;
     706    else if (   value == "false"
     707             || value == "off"
     708             || value == "no")
     709             fResult = false;
     710    return fResult;
     711}
     712
     713</xsl:text>
     714
     715  <xsl:text>void C</xsl:text>
     716  <xsl:value-of select="substring(@name,2)"/>
     717  <xsl:text>::SetExtraDataInt(const QString &amp;strKey, int value)</xsl:text>
     718<xsl:text>
     719{
     720    SetExtraData(strKey, QString::number(value));
     721}
     722
     723</xsl:text>
     724
     725  <xsl:text>int C</xsl:text>
     726  <xsl:value-of select="substring(@name,2)"/>
     727  <xsl:text>::GetExtraDataInt(const QString &amp;strKey, int def /* = 0 */)</xsl:text>
     728<xsl:text>
     729{
     730    QString value = GetExtraData(strKey);
     731    bool fOk;
     732    int result = value.toInt(&amp;fOk);
     733    if (fOk)
     734        return result;
     735    return def;
     736}
     737
     738</xsl:text>
     739
     740  <xsl:text>void C</xsl:text>
     741  <xsl:value-of select="substring(@name,2)"/>
     742  <xsl:text>::SetExtraDataRect(const QString &amp;strKey, const QRect &amp;value)</xsl:text>
     743<xsl:text>
     744{
     745    SetExtraData(strKey, QString("%1,%2,%3,%4")
     746                         .arg(value.x())
     747                         .arg(value.y())
     748                         .arg(value.width())
     749                         .arg(value.height()));
     750}
     751
     752</xsl:text>
     753
     754  <xsl:text>QRect C</xsl:text>
     755  <xsl:value-of select="substring(@name,2)"/>
     756  <xsl:text>::GetExtraDataRect(const QString &amp;strKey, const QRect &amp;def /* = QRect() */)</xsl:text>
     757<xsl:text>
     758{
     759    QRect result = def;
     760    QList&lt;int&gt; intList = GetExtraDataIntList(strKey);
     761    if (intList.size() == 4)
     762    {
     763        result.setRect(intList.at(0),
     764                       intList.at(1),
     765                       intList.at(2),
     766                       intList.at(3));
     767    }
     768    return result;
     769}
     770
     771</xsl:text>
     772
     773  <xsl:text>void C</xsl:text>
     774  <xsl:value-of select="substring(@name,2)"/>
     775  <xsl:text>::SetExtraDataStringList(const QString &amp;strKey, const QStringList &amp;value)</xsl:text>
     776<xsl:text>
     777{
     778    SetExtraData(strKey, value.join(","));
     779}
     780
     781</xsl:text>
     782
     783  <xsl:text>QStringList C</xsl:text>
     784  <xsl:value-of select="substring(@name,2)"/>
     785  <xsl:text>::GetExtraDataStringList(const QString &amp;strKey)</xsl:text>
     786<xsl:text>
     787{
     788    return GetExtraData(strKey).split(",");
     789}
     790
     791</xsl:text>
     792
     793  <xsl:text>void C</xsl:text>
     794  <xsl:value-of select="substring(@name,2)"/>
     795  <xsl:text>::SetExtraDataIntList(const QString &amp;strKey, const QList&lt;int&gt; &amp;value)</xsl:text>
     796<xsl:text>
     797{
     798    QStringList strList;
     799    for (int i=0; i &lt; value.size(); ++i)
     800        strList &lt;&lt; QString::number(value.at(i));
     801    SetExtraDataStringList(strKey, strList);
     802}
     803
     804</xsl:text>
     805
     806  <xsl:text>QList&lt;int&gt; C</xsl:text>
     807  <xsl:value-of select="substring(@name,2)"/>
     808  <xsl:text>::GetExtraDataIntList(const QString &amp;strKey)</xsl:text>
     809<xsl:text>
     810{
     811    bool fOk;
     812    QList&lt;int&gt; intList;
     813    QStringList strList = GetExtraDataStringList(strKey);
     814    for (int i=0; i &lt; strList.size(); ++i)
     815    {
     816        intList &lt;&lt; strList.at(i).toInt(&amp;fOk);
     817        if (!fOk)
     818            return QList&lt;int&gt;();
     819
     820    }
     821    return intList;
     822}
     823
     824</xsl:text>
     825
     826</xsl:template>
     827
    653828<xsl:template name="defineMembers">
    654829  <xsl:call-template name="defineAttributes">
     
    658833    <xsl:with-param name="iface" select="."/>
    659834  </xsl:call-template>
     835  <xsl:if test="@name='IVirtualBox' or @name='IMachine'">
     836    <xsl:text>// ExtraData helpers&#x0A;&#x0A;</xsl:text>
     837    <xsl:call-template name="defineExtraDataHelpers">
     838      <xsl:with-param name="iface" select="."/>
     839    </xsl:call-template>
     840  </xsl:if>
    660841</xsl:template>
    661842
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette